Location-Specific Desktop Display

ABSTRACT

In general, the subject matter described in this specification can be embodied in methods, systems, and program products. A mobile computing device presents a desktop display, wherein the desktop display includes (i) a desktop background display, and (ii) one or more user-selectable application program shortcut icons. A first geographic location of the mobile computing device is determined. The mobile computing device updates the desktop background display to include a first image of a map that depicts the first geographic location. A second geographical location of the mobile computing device is determined. The mobile computing device updates the desktop background display to include a second image of the map, wherein the second image of the map has panned to depict the second geographic location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of and claims priority under 35 U.S.C.§120 to U.S. application Ser. No. 13/567,887, filed on Aug. 6, 2012,which claims priority to U.S. application Ser. No. 13/250,263, filed onSep. 30, 2012, which claims priority to U.S. application Ser. No.12/914,313, filed on Oct. 28, 2010, which claims priority to U.S.Provisional Application No. 61/255,847, filed Oct. 28, 2009, the entirecontents of which are hereby incorporated by reference.

TECHNICAL FIELD

This document generally relates to user interface displays.

BACKGROUND

Mobile computing devices such as smartphones may offer users richexperiences. Such a device may allow users to browse internet websites,download third-party application programs, use mapping applications thatshow the device's present geographical location on a map, and maketelephone calls, among many possibilities.

Users can place such a mobile device in a dock to power a battery of thedevice or to supplement the functionality of the device. For example, adock may include a male data terminal that engages a female dataterminal of the mobile device. The dock may create a snug fit with themobile device to ensure that the data terminals are not damaged uponuser pivoting of the mobile device in any direction. Upon connection ofthe terminals, the dock can supply electrical power to the mobiledevice.

The mobile device may communicate data to the dock through the dataterminal, for example, to play music or display a video. The dock mayinclude components that are superior to components in the mobile device,for example, speakers or a display that are larger than those of themobile device. The mobile device may receive commands from the dock, forexample, in response to a user selecting a “next song” button on thedock.

Upon the mobile device being placed into the dock, the display of themobile device may change. The display may remain substantially the samewhile the mobile device is connected to the dock, and may change back toan original display when the user removes the mobile device from thedock. Communication between the mobile device and the dock may bepreconfigured and the device and dock may begin to communicateimmediately upon user placement of the device in the dock, without userintervention.

A mobile computing device may include various mechanisms for reducingbattery usage. For example, upon the device becoming low on storedpower, the mobile device may switch to a low-power energy state. Theswitch to the low-power energy state may reduce a brightness of adisplay, reduce a frequency of mobile device wireless data transfers,and reduce an effective processing speed of the mobile device.

The mobile computing device may include an application program thatallows a user to identify a location at which the user has parked hiscar, and the application program may store the location. Upon the userdesiring to find the location of his car, the user can launch theapplication program. The launched application program can identify adirection to the user's car.

SUMMARY

This document describes techniques, methods, systems, and mechanisms fordisplaying a graphical interface. In general, a mobile computing devicemay be paired with a dock. Upon docking, the mobile device may determinea type of the dock, and may present a graphical user interface that isspecific to the type of dock. For example, the mobile device may displaya configuration interface the first time that the mobile device ispaired with a particular type of dock. The configuration interface mayallow the user to activate automated wireless communication between themobile device and the dock, for example, to play mobile computing deviceaudio over the dock speakers. The configuration interface may not bedisplayed upon subsequent dockings.

In general, one aspect of the subject matter described in thisspecification can be embodied in a computer-implemented method. Themethod includes determining that a mobile computing device haselectrically coupled by physical contact with a docking system that isadapted to supply electrical power for charging the mobile computingdevice. The method includes determining that the docking system is afirst type of docking system from a plurality of types of dockingsystems. The method includes selecting a first user interface profilethat corresponds to the first type of docking system from among aplurality of user interface profiles, each of the plurality of userinterface profiles corresponding to a respective type of docking systemfrom the plurality of types of docking systems. The method includespresenting, by the mobile computing device for display, the first userinterface profile in response to selecting the first user interfaceprofile.

Another aspect of the subject matter described in this specification canbe embodied in a computer-implemented method. The method can includedetermining that a mobile computing device has electrically coupled byphysical contact with a docking system that is adapted to supplyelectrical power for charging the mobile computing device. The methodcan include determining that the docking system is a first type ofdocking system from a plurality of types of docking system. The methodcan include selecting a first configuration user interface thatcorresponds to the first type of docking system from among a pluralityof configuration user interfaces, each of the plurality of configurationuser interfaces corresponding to a respective type of docking systemfrom the plurality of types of docking systems. The method can includedetermining that the mobile computing device has not electricallycoupled with the docking system before. The method can includepresenting, by the mobile computing device for display, the firstconfiguration user interface. The method can include receiving userinput, with the first configuration user interface, for activatingwireless communication between the mobile computing device and thedocking system. The method can include storing an indication thatwireless communication is to be activated when the mobile computingdevice is electrically coupled with the docking system. The method caninclude determining that the mobile computing device has electricallycoupled with the docking system a subsequent time. The method caninclude presenting, by the mobile computing device for display, a userinterface that corresponds to the docking system without presenting thefirst configuration user interface. The method can include establishingwireless communication between the mobile computing device and thedocking system based on the stored indication.

In yet another aspect, the subject matter described in thisspecification can be embodied in a computer-implemented system. Thesystem includes a dock detector that is programmed to (i) determine thata mobile computing device has electrically coupled for charging with adocking system that is adapted to supply electrical power for to themobile computing device, and (ii) determine that the docking system is afirst type of docking system from a plurality of types of dockingsystem. The system includes a repository of electronically stored userinterface profiles that specify different schemes for presentations ofinformation with the mobile computing device, each user interfaceprofile corresponding to a type of docking system from the plurality oftypes of docking systems. The system includes a user interface selectorthat is programmed to select a first user interface profile from therepository of user interface profiles based on the selected userinterface profile corresponding to the first type of docking system. Thefirst user interface is selected for use by the mobile computing devicein response to the dock detector determining that the mobile computingdevice has electrically coupled with the docking system and that thedocking system is a first type of docking system.

Particular embodiments can be implemented, in certain instances, torealize one or more of the following advantages. A user may not need toprovide user input for a computing device to enter dock-specific states.Instead, the user may only simply place the mobile device in a dock andthe mobile device may enter a mode that is specific to the type of dock.The user may be prompted to configure mode settings a first time thatthe computing device is docked, without having to provide user input tonavigate to a settings interface. Thus, a user may be made aware of thedock's capabilities upon docking, and may be more likely to use the dockfor its full potential.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description and drawings, and fromthe claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows a music docking system and a mobile computing device in theform of a touchscreen smartphone.

FIG. 2 shows a schematic diagram of a docked mobile computing device.

FIG. 3 shows an example desktop dock for a mobile computing device.

FIG. 4 shows an example car dock for a mobile computing device.

FIG. 5 shows a partially transparent view of a dock in which a mobilecomputing device has been placed.

FIG. 6 shows a bottom view of a mobile computing device.

FIG. 7 shows a flowchart of an example process for identifying a dockthat a mobile computing device has physically mated with, and forestablishing a wireless connection with the dock.

FIG. 8 shows an example user interface profile that is displayed by amobile computing device upon docking in a car dock.

FIG. 9 shows an example user interface profile that is displayed by amobile computing device upon docking in a desktop dock.

FIG. 10 shows a modification to an example user interface profile thatis displayed by a mobile computing device upon docking in a car dock.

FIG. 11 shows a flowchart of an example process for displaying adock-specific profile.

FIG. 12 shows an example flowchart for delaying wireless terminationupon undocking of a mobile device.

FIG. 13 shows a user interface of a mobile computing device that hasbeen removed from a dock, but that remains in wireless communicationwith the dock.

FIG. 14 shows another user interface of a mobile computing device thathas been removed from a dock, but that remains in wireless communicationwith the dock.

FIG. 15 shows a flowchart of an example process for maintaining awireless connection upon undocking.

FIG. 16 shows an example user interface of a map that identifies alocation at which a user changed his mode of transportation.

FIG. 17 shows an example display of data that may be used to determine alocation at which a user changed his mode of transportation.

FIG. 18 shows a flowchart of an example process for determining ageographical location at which a user changed a mode of transportation.

FIG. 19 shows a user interface for delaying execution of a computerprocess.

FIG. 20 shows a user interface for delaying execution of a computerprocess.

FIGS. 21A-B show a flowchart of an example process for delayingexecution of computer processes.

FIG. 22 shows an example system that includes a mobile computing deviceand a dock.

FIG. 23 is a conceptual diagram of a system that may be used toimplement the systems and methods described in this document.

FIG. 24 is a block diagram of computing devices that may be used toimplement the systems and methods described in this document, as eithera client or as a server or plurality of servers.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This document generally describes mobile computing devices andassociated docking systems.

General Overview

Base stations or docks are commonly used to recharge mobile computingdevices, and in some instances can be used to also communicate to orfrom a device. For example, a simple power cord can be used to rechargea device, while a music base system may provide power and may alsoreceive data through the same physical connection that supplies thepower, or a nearby physical connection, usually along an edge of themobile computing device in a manner that allows a screen of the deviceto be visible to a user of the device while it is docked. The dockingconnections may be friction fittings so that a device may be insertedand removed easily, though click locks may also be used to help ensurethat a cord or other structure does not dislodge easily from the device.

FIG. 1 shows a music docking system and a mobile computing device in theform of a touchscreen smartphone. This figure shows schematically asystem in which a wired electrical connection is made upon docking thedevice, and the formation of the electrical connection triggers otheractions on the device to occur. In the figure, the dock 104 takes afamiliar form of an appliance that can be plugged into a standardelectrical outlet and that includes amplifiers and speakers, among otherthings.

A first device state 102A of the mobile device is shown when the deviceis physically connected to the dock 104, and a second device state 102Bis shown when the device has subsequently been undocked. A chargingmechanism is shown schematically in the figure by supply voltage 110that is provided through a physical docking connector 108 to rechargebatteries in the device and to allow the device to operate when it isdocked. The dock 104 also has a display that can show a time, or statusrelating to the dock 104, including via information that is receivedfrom the device

FIG. 2 shows a schematic diagram of a docked mobile computing device. Aninput manager 212 in the device manages input to the device, includingtouch input to a screen on the device. A display manager 214 coordinateswith the touch manager and controls what items are displayed in whatpositions, which will be shown over other items, and which will be shownas having the device's focus.

A connection manager 218 manages docked and wireless connections for thedevice, such as in the manners discussed above. For example, theconnection manager 218 may infer a context for a device based on themanner in which it is docked, and may notify various applications 216that may be run on a processor of the device 200, including navigationalapplications, of the device context. A power manager 208 and voltagesensor 209 cooperate to determine when a device has been plugged into apower source, and also to determine when certain activities may occur ona device after it has been plugged in. Finally, various wirelessinterfaces 220-224 may be employed by the device 200 in order tocommunicate by a variety of modes, such as BLUETOOTH, WiFi, 3G, 4G andother cellular connections.

FIG. 3 shows an example desktop dock for a mobile computing device. Thisfigure shows the desktop dock 302 in both a front view 302A and a rearview 302B. As illustrated in the front view 302A, the dock 302 isadapted to receive a mobile computing device 304 when the dock 302 isresting on a flat surface. In other words, a user of the device 304 mayplace the device 304 into the dock, for example, to charge a battery ofthe device 304 and route an audio signal to an external speaker system.

The dock 302 may include three conductive pins for establishing physicalelectrical connections with the device 304, when it is docked. A firstpin 306 may provide a positive voltage electrical current to the device304. A second pin 308 may provide a reference voltage (e.g., ground) tothe device 304. A third pin 310 may be used for bi-directional serialdata communication between the dock 302 and the device 304. Additionalpins may be included in other implementations, such as to provide forparallel data communications with the device 304.

As illustrated in the back view 302B, the dock 302 includes a 3.5 mmfemale audio output jack 320, and a female USB jack 322. A 3.5 mm to RCAcable 324 may connect the dock 302 to an external audio source 328(e.g., a receiver of a home stereo system). A USB cable 326 may connectthe dock 302 to a power brick for connection to an AC power source. Insome examples, the USB cable 326 may connect to a DC power sourcewithout a power brick, for example by connecting to a laptop computer.The laptop computer may supply solely DC power to the dock 302, or mayadditionally establish digital data communications with the dock 302.

Accordingly, and as described in more detail throughout this document,the dock 302 may power a device 304 that has been placed in the dock302, and may recharge a battery of the device 304. While docked, thedevice 304 may provide audio transmissions to the dock 302, which thedock 302 may route such transmission to the external audio source 328.The audio transmissions may be transmitted wirelessly between a radiotransceiver in the device 304 and a radio transceiver in the dock 302.The pin 310 that is used for serial communication may be used toinitiate the wireless communication, but not be used to executesubsequent data communication between the dock 302 and the device 304(e.g., to subsequently transfer data that represents an audio signal).

FIG. 4 shows an example car dock for a mobile computing device. In thisfigure, the car dock 402 includes a base 404 for mounting the car dock402 to a surface (e.g., a car dashboard, a car windshield, a desk, or awall). The base 404 may include a suction cup 406 that enables the base404 to mount to consistent surfaces. A disk 408 can be adhesivelyattached to an uneven surface (e.g., a rippled car dashboard) to providea consistent surface for the dock.

The base 404 may connect to the docking body 410 via a rod. A first endof the rod may connect with the base 404 using a ball joint, while asecond end of the rod may connect to the docking body 410 with anotherball joint. Thus, the docking body 410 may be pivoted to face indifferent orientations, and may rotate between landscape and portraitorientations.

The docking body 410 includes a recessed inner portion 403 that issurrounded by a wall 412. The recessed inner portion 403 and the wall412 are shaped to correspond to the outside of a housing of a mobilecomputing device. A lower wall 412 a and a retractable top latch 416 mayat least partially enclose a front surface of the mobile device in orderto constrain the mobile device to the dock 402. In some examples, theside walls 412 b may not partially enclose the front surface. In otherwords, the walls may not circumferentially wrap more than half-wayaround a narrowest portion of the mobile device.

The car dock 402 may include a female USB jack 414 to receive a USB cord(not shown) that supplies power, and in some examples, data. The cardock 402 also includes speakers 418 that radiate sound from a back sideof the dock. In some examples, the speakers 418 play audio that has beenwirelessly transmitted from a mobile device to the dock. A volume rockerswitch 426 allows a user to adjust the volume of audio that is output bythe speakers 418. The car dock 402 also includes a microphone 434. Thedock microphone 434 may have acoustic qualities that are better suitedfor speakerphone operation than does a microphone of a mobile device.Thus, the dock 402 may wirelessly transmit, to a docked device, an audiosignal that is received using the dock microphone 434.

A first pin 432 may provide a positive voltage electrical signal to adocked device. A second pin 430 may provide a reference voltage to thedevice. A third pin 428 may be used for serial data communicationbetween the device and the dock 402. The pins 428-432 may be provided ina same spacing and orientation as the pins 306-310 of FIG. 3. In otherwords, the pins in both devices contact the same portions of a mobilecomputing device that is moved between the docks.

FIG. 5 shows a partially transparent view of a dock in which a mobilecomputing device has been placed. The dock 502 may be the desktop dock302 that is illustrated in FIG. 3. The dock 502 is shown as partiallytransparent to illustrate its engagement with the mobile computingdevice 504.

The mobile computing device 504 may be docked into the dock 502. Adocked device 504 may be a device that has been placed by a user into arecess of the dock 502 that is shaped to correspond to at least aportion of an outside of a housing for the device 504. In some examples,the device's conductive pads 602, 604, and 606 (see FIG. 6) electricallycontact the dock's conductive pins 306, 308, and 310 (see FIG. 3) whenthe device 504 is docked. When docked, the conductive elements in eachdock may remain in contact without continued user assistance. Eachconductive pad may be electrically isolated from each other, and eachconductive pin may be electrically isolated from each other.

In some examples, the conductive pins 306, 308, and 310 are pins thatare biased by springs towards the recess in the dock. When the device504 has been docked, the conductive pads 602, 604, and 606 engage thepins 306, 308, and 310. The pins may be rods that are substantiallycylindrical along a length of the pins and that are rounded at the endof the pin that contacts the respective conductive pads 602, 604, and606. When docked, the device 504 may force the pins at least partiallyout of the cavity and into an internal portion of the dock 502.

In some implementations, the dock 502 is designed to receive the device504 in a “frictionless” manner. In other words, a user may place andremove the device 504 from the dock 502 without applying much more forcethan is necessary to manipulate the device 504 in free space.

Accordingly, the dock 502 may not include any guiderails or protrusionsthat engage with the device 504 and that cause the device 504 to beplaced into the dock 502, or removed from the dock 502, with aone-dimensional linear movement. For example, a proximal end 510 of themobile device (e.g., an end that is closest to the dock 504 along alongitudinal axis 506 of the mobile device) may be placed into a lowerportion of the recess as the mobile device is being docked, so that thelongitudinal axis 506 of the mobile device remains substantiallyparallel to a longitudinal axis 514 of a rear face 328 of the dock.

In another example, the proximal end 510 of the mobile device 504 may bepositioned in a lower portion of the cavity so that a longitudinal axis506 of the mobile device 504 is not substantially parallel with thelongitudinal axis 514 of the rear face 328 of the dock 502 (e.g., as inthe position 518). In this example, the distal end 508 of the mobiledevice 504 may be pivoted (e.g., as illustrated with arrow 520) in orderto place the mobile device 504 in a resting dock position. Uponpivoting, the longitudinal axis 506 of the mobile device 504 may bemoved into a substantially parallel relationship to the longitudinalaxis 514 of the face 328 of the dock 502.

Thus, the device 504 may be initially placed into the dock 502 in anorientation that causes compression of the pins 306, 308, and 310 in anorientation such that the direction of pin compression is not parallelto the longitudinal axis 506 of the device. Upon pivoting the mobiledevice, the direction of pin compression may align in a parallelrelationship with the longitudinal axis 506 of the device. In someexamples, no part of the dock 502 rotates with the device 504 as thedevice 504 is rotated into or out of a resting docked position.

The dock 502 may include a rear race 328, side walls 330 a and 330 b,and a lower retaining wall 332. The side walls 330 a-b may cover aportion of the side walls 516 of the mobile device 504. The lowerretaining wall 332 may include a lip 512 that does not substantiallycover a front portion of the mobile device 504, and which may not coverany user input or user output devices on the mobile device 504. The lip512 may rise enough to retain the device 504 in the dock 502 when thedevice has been docked.

The lip 512 may not, however, prevent the proximal end 510 of the mobiledevice from essentially popping out of the dock when a user appliesforce to the distal end of the mobile device 504 in a direction 522 thatis oriented towards the rear face 328 of the dock. The force may causethe proximal end 510 of the mobile device to “jump” out of the dock 502,and may cause disruption of electrical communication between the pins306, 308, and 310 and the conductive pads 602, 604, and 606. Removal ofa device may be “prevented” when a force that is sufficient to lift thedevice 504 is applied to the device, and the device 504 is not removedfrom the dock 502.

Further, the lip 512 may not prevent the mobile device 504 from rotatingin a forward direction 514 if a user applies a force 524 to the distalend 508 of the mobile device 504 in a direction that is away from a faceof the 328 of the dock 502. Application of such force may cause thedevice 504 to pivot in the forward direction 514, eventually falling outof the dock if the user does not lift the device away from the dockafter some degree of pivoting (e.g., 10 degrees). A user may also removethe device 504 so that a longitudinal axis 506 of the device 504 remainsparallel to a longitudinal axis 514 of the face 328 (e.g., so that arear face of the device 504 slides along the face 328 of the dock fortwo centimeters before removal away from the dock 502).

In some examples, a user lifts the device 504 in a vertical direction526 out of the dock 502. In such examples, the device 504 may be removedfrom the dock with little apparent friction. For example, the dock 502may not frictionally engage the device 504 as the device is removed,beyond frictional contact forces that may be present when a device isvertically removed from a surface (e.g., frictional forces that may beapparent when a device is vertically removed from a flat table). In someexamples, these forces do not exceed 0.009625 Newtons.

In some examples, the device 504 may be removed from the dock 502without substantial movement of the dock 502 occurring as a result ofmoving the device 504. For example, when the dock 502 is not affixed tothe surface or held by a user, the dock may move less than 0.2 mm whenthe device 504 is lifted. Such lack of substantial movement may occureven when the dock 502 weighs less than the device 504, for example,seventy percent of the weight of the device 504 when the device 504includes a battery.

The dock 502 may include three electrical pins 306, 308, and 310 thatcontact the device 504, and the device 504 may include correspondingelectrical pads 602, 604, and 606. The electrical pads 602, 604, and 606may each include a surface that is substantially flush with a surface ofthe exterior of a housing of the mobile device 504. For example, asubstantially flush surface may sit no more than 0.5 mm above or belowan outermost adjacent exterior surface of the device 504.

The mobile device 504 may include a female data connection terminal 610on a bottom of the device 504. The dock 502, however, may not include acorresponding male data connection terminal. Thus, the mobile device 504may include a data terminal that is oriented for exchange of data withthe dock 502, while the dock 502 may not include a correspondingterminal.

The dock 502, accordingly, may not include components that engage, onthe device 504, a surface of the device 504 that is internal to thedevice and that is parallel to the longitudinal axis 506. For example,if the dock 502 included a male data connection terminal that mated withthe female data connection terminal 610, side walls of the maleconnection terminal may frictionally engage with the side walls of thefemale connection terminal 610. In contrast, pin 306, for example,contacts the conductive pin 602 in an orthogonal manner. Thus, the pins306, 308, and 310 and the conductive pads 602, 604, and 606 may notprevent the mobile device 504 from laterally moving in a direction thatis orthogonal to the dock's longitudinal axis 506 or the axis 328 of thedock (even if another portion of the dock may prevent such lateralmovement). Instead, a proximal portion 510 of the mobile device may beable to move in a direction that is orthogonal to a direction ofcompression of the pins 306, 308, and 310, while the mobile device 506is in contact with the pins 306, 308, and 310. A frictional force of apin sliding across a face of a conductive pad is not a substantialfrictional force.

Dock Identification and Establishing a Wireless Connection

FIG. 7 shows a flowchart of an example process for identifying a dockthat a mobile computing device has physically mated with, and forestablishing a wireless connection with the dock. The described actionsmay occur upon a user physically placing the mobile device into a dock,for example, as illustrated in FIG. 3 (i.e., the placement of device 304into dock 302) and FIG. 4 (i.e., the placement of device 304 into dock402). In various examples, the process describes an automatic BLUETOOTHpairing that occurs upon the mobile device determining the type of dockwhen upon docking.

In box 702, the mobile computing device determines that the device hasconnected with electrical power. For example, the device may receive anindication that the device has begun to charge, or may receive anindication that voltage is present on an electrical bus that providespower for charging the device. As an illustration, the mobile computingdevice that is illustrated in FIG. 6 may determine that the device hasbeen connected to electrical power when power is received at conductivepad 602.

In box 704, the mobile computing device determines whether the device isconnected with a dock. For example, the mobile computing device maydetermine whether a voltage of the conductive pad 606, which maynormally be pulled up to a first voltage level when the mobile device isnot connected to a dock, has been pulled down to a second voltage levelas may occur when the conductive pad 606 is electrically connected withpin 310.

The mobile computing device may perform the operations of boxes 702 and704 separately because the mobile device may be unable to determine asource of the power (e.g., whether the power is being received throughthe data terminal 610 or through the conductive pad 602). In variousexamples, the determinations of boxes 702 and 704 are performed in asingle step. In other words, the mobile device may be able to determine,when power is connected, whether the source of the power is through thedata terminal 610 or is through the conductive pad 602. If the mobiledevice is not determined to be connected to a dock, the process ends(box 706).

In box 708, the mobile computing device transmits to the dock a commandthat requests that the dock respond with the dock type. In someexamples, the command is transmitted over a single wire interface, forexample, from the conductive pad 606 of the mobile device to the pin 310of the dock.

In box 710, the dock receives the request. In response, the dock mayaccess a stored alphanumeric identifier which identifies the dock type,and may transmit the dock type alphanumeric identifier back to themobile device (box 712). In various examples, dock 302 and dock 402would each respond with a different identifier, but multiple of the sametype of dock may respond with the same identifier.

In box 714, the mobile computing device receives the dock typeidentifier. The device, at box 716, uses the identifier to determinewhether the device has previously stored data for establishing awireless connection with the dock (e.g., whether the device includes awireless network identifier for the dock and an authentication code forestablishing the wireless connection). If the device has the storeddata, the device may establish the wireless connection, as describedwith reference to box 732. If the device does not have the stored data,the device requests the wireless network identifier from the dock (box718).

In box 720, the dock receives the request for the wireless networkidentifier. In response, the dock may access a stored alphanumericidentifier of a network address that the dock may use for wirelesscommunication, and may transmit the accessed network address back to thedock as the network identifier (box 722). In some examples, the networkidentifier is stored under the BD_ADDR variable and is a unique addressof the dock as a BLUETOOTH device, similar to MAC addresses of a networkcard. This address may be used in pairing the mobile device and thedock.

In box 724, the mobile computing device receives and stores the networkidentifier. The mobile device may store the network identifier inassociation with the dock type identifier, so that the mobile device mayidentify the network identifier upon subsequently docking with the dock(and thus receiving the dock type identifier).

In box 726, the mobile computing device generates and sends anauthentication code to the dock. For example, a BLUETOOTH device may usea passkey or pin code in order to establish communication with anotherBLUETOOTH device. Thus, the mobile device may generate theauthentication code, send the code to the other device, and may storethe code in association with the dock type identifier. The docksubsequently receives the code (box 728).

Upon the mobile computing device and the dock both having stored thecode, the devices may establish wireless communication with each other.For example, with BLUETOOTH communication, the dock may send the passkeyback to the mobile device as an acknowledgment, and in response bothdevice may wirelessly pair and exchange data. In various examples, thedock may be configured to remain unable to wirelessly pair with anydevices until the dock has received a code from another device over aphysical electrical connection. In various examples, the dock wirelessradio may remain off until the dock receives the wireless code.

In various examples, the dock generates the authentication code andtransmits the code to the mobile device. In various examples, the dockrequests the wireless address from the mobile computing device. Invarious examples, the communication between the mobile computing deviceand the dock is performed using Modified Frequency Modulation (MFM) andRun length limited (RLL) coding to ensure that the length of repeatedbits during which a signal does not change is limited. In variousexamples, the mobile computing device and the dock establish wirelesscommunication through a third device, for example, a Wi-Fi router.

In various examples, a transmission by either the mobile device or thedock starts with two “1” databits (0101 after MFM encoding, where “1”indicates a transition and “0” indicates a maintained output). Such astart allows the receiving device to synchronize on rising and fallingedges, which may help avoid problems that are caused by a DC bias on theline, or problems that may be caused by a non-center switching thresholdon the general purpose input/output.

In various examples, a device that is receiving data waits for an edgeand measures the time from the last edge of the same polarity. An erroris recorded if the edge occurs outside of a specified margin of error.Once the expected quantity of bits has been read, a validation may beperformed to determine whether the received data represents a valid MFMencoded pattern.

In various examples, a device that is transmitting reads a hardwaretimer before and after toggling the output to generate an edge. If thedifference in times is outside of an acceptable margin, the device stopstransmitting. If there has been a delay in the code, the receivingdevice may detect that there was an error unless the error occurredduring the last one or more bits of a byte or of a transmissionsequence. Errors in the last bit may be caught by a checksum byte as anerroneous transmission may not be a valid MFM sequence. A known stop bitmay be added to improve the error checking.

In various examples, all write commands are the same length and all readcommands are the same length. Both read and write commands may beginwith the mobile device sending the command followed by a short delaywhere the dock takes control of the data line by driving the data lineto the same voltage level that the mobile device left the line in. Thedock may immediately respond with a response. The response may includetwo start data bits followed by one acknowledgment data bit for a writecommand (e.g., box 726). The response may include two start data bitsfollowed by 8 result data bits for read commands (e.g., boxes 708 and718). In some examples, the dock cannot initiate a command, and may onlyrespond to commands by the mobile device.

In various examples, a separate command may be used to send or receiveeach byte of multi-byte data such as the wireless network identifier orauthentication code. Another command may read or send a checksum byte.Breaking the communication into smaller portions may limit the timespent with device interrupts disabled.

In various additional examples, identification of a dock type may occurin a variety of manners. For example, one or more electrical contactsmay be provided on the device and at a corresponding location on thedock. The number of electrical contacts that are made between the deviceand the dock may be used to determine what type of dock the device hasbeen docked to. For example, where the device and dock each have twocontacts, the device could determine three different dock types, inwhich a first contact is made, a second contact is made, or bothcontacts are made (no contacts may have to be assumed to represent adevice that is not built to the standard). The three types of docks insuch an example may include a music player, an automobile, and a videomonitor. Additional electrical contacts may provide for additionalinformation to be determined by the mobile computing device when it isdocked. The particular types and locations of contacts may be defined bya standard, so that the mobile device may be interoperable with docksmade by a variety of suppliers. In a similar manner, magnets may beplaced in the device and/or dock, and attraction of the magnets to itemsplaced in the opposite machine may be used to make determinations in amanner similar to that for the contacts just discussed.

In another implementation, the dock identification may be communicatedto the mobile computing device through a physical data connectionbetween the dock and the device. For example, the data connection may beparallel to or integral with the electrical connection between thedevice and the dock, or the data may be superimposed over the electricalsignal that is passed to the device. A digital representation may beprovided to the device in this manner that identifies the type of dock,and thus the context in which the mobile device has been docked.

The context in which the device has been docked may also be inferredfrom a variety of other signals. For example, an accelerometer on thedevice may determine that the dock is vibrating at a particularfrequency that is indicative of an operating automobile, and the devicemay thus infer that the dock is an automobile dock. In other situations,the device may emit a tone and listen for the tone, and determine itsenvironment based on the manner in which the tone has been modified fromits admitted state.

For example, particular dampening of the tone or echoing of the tone mayindicate that the device is in a user's home, car, or the outdoors. In asimilar manner, docking in a car may enable the device to sync over aBLUETOOTH connection with the car itself, and the device may use thefact of the connection, or data that is passed over the connection, todetermine that it has been docked within a car. A more granulardetermination may be made in other circumstances such as where a devicemay determine which car of multiple cars it has been synced in or dockedin. For example, the device may determine that it has been docked in asports car and may adjust its mode of operation accordingly, versusbeing docked in a sport utility vehicle. A user may also establishprofiles for each type of vehicle so that the docked device changes tothe particular profile when it senses that it has been docked into thattype of vehicle.

Dock-Specific Profiles

FIG. 8 shows an example user interface profile that is displayed by amobile computing device upon docking in a car dock. As an illustration,a user of a mobile computing device 804, Jim, is sitting in his houseand using his mobile device 804 to view a newspaper website. Jimreceives a call from a friend asking if Jim would like to join thefriend for supper. Jim agrees, walks out to his car, and gets in hiscar.

Jim takes his mobile device 804 and places the mobile device in a cardock 802 which Jim had previously mounted to his car windshield. Asdescribed throughout this document, Jim's mobile device 804 determinesthat the mobile device has been docked, and determines that the type ofdock is a car dock 804 (e.g., as opposed to a desktop dock).

Jim may never have placed the mobile device 804 in the car dock 802before. Thus, upon Jim placing the mobile device 804 in the car dock802, the mobile device displays the configuration dialog box 806. Theconfiguration dialog box 806 includes a first user interface element 808that enables Jim to activate wireless communication between the mobiledevice and the dock for using the dock as a “speaker phone,” and asecond user interface element 810 that enables Jim to activate wirelesscommunication between the mobile device and the dock for using the dockto audibly output “music and media.”

Jim would like to use the full capabilities of the dock, and thusselects both options by tapping on the selectable user interfaceelements, which show check marks upon user selection. Jim would alsolike the mobile device 804 to remember his selections so that the dialogbox 806 does not appear upon a subsequent docking. Thus, Jim selects the“Remember Settings” interface element 812. Jim then selects the “OK”interface element 814, which causes the dialog box 806 to be removedfrom display. In some examples, Jim may go to a “settings” userinterface page to change his wireless settings because the dialog box806 may no longer appear upon docking. In some examples, the dialog box806 does not include the “Remember Settings” interface element 812, andthe dialog box 806 only appears the first time that the mobile device isdocked with a particular dock or type of dock.

User selection of the “OK” interface element 814 may trigger activationof wireless communication between the mobile device 804 and the dock 802based on the selected settings. Thus, if an incoming telephone call isreceived while the device 804 is docked, the ringing and audio from theparty that is calling Jim may be output over the dock speakers insteadof the mobile device speakers. In other words, the mobile device 804wirelessly transmits to the dock 802 data that encodes an audio signalof the incoming telephone call ring and audio of the voice of thecalling party. The dock 802 may receive the data, and from the data,generate an audio signal to audibly output over the dock's speakers.

Also, the dock 804 may include a microphone 816 that may be activatedwhen telephone calls are initiated or received when the mobile device isdocked and when the “speaker phone” setting has been selected. Duringthe telephone call, Jim may speak into free space even though his mobiledevice 802 is an arm's length away from Jim. The microphone that is inthe dock may be designed to work adequately at an arm's length distancewhere, for example, the microphone in the mobile device 804 may be atleast partially obscured by the dock and may have been designed to workpreferably for audio that is spoken within several inches of the mobiledevice.

Further, because Jim has selected to use the dock for “music and media”audio, when Jim launches an application program that has registered withthe mobile computing device 804 as an application program for playingmedia files (e.g., songs, audiobooks, or video files), audio that isoutput by the application program may be wirelessly transmitted to thedock for audible output. Thus, Jim may audibly output media files overthe dock's speakers by placing the mobile device in the dock. On theother hand, if Jim had not selected to use the dock for “music andmedia,” the mobile device 804 may have audibly output the audio throughthe speakers of the mobile device 804, or through a 3.5 mm headphonejack of the mobile device 804 (if a line is plugged into the headphonejack). Thus, if Jim wishes to run audio through a 3.5 mm audio line ofthe mobile device 804, Jack may not want to select the “music and media”interface element 810.

Upon Jim selecting the “OK” interface element 814, the dialog box 806may disappear and the car dock specific desktop 818 may display withoutobstruction by the dialog box 806. The car dock specific desktop 818 mayinclude six selectable interface elements for launching sixcorresponding application programs. For example, Jim may select the“Navigate” interface element 820 to launch an application program thatprovides driving directions from a present location of the mobile deviceto a user-input location. Selection of a “Call” interface element 822may launch an application program that allows Jim to place a telephonecall with the mobile device 804.

Selection of a “Voice Search” interface element 824 may launch anapplication program that allows Jim to audibly speak a query and, inresponse, the mobile telephone may display a list of search results.Selection of a “Contacts” interface element 826 may launch anapplication program that causes the mobile device 804 to display a listof Jim's contacts. Selection of a “Music” interface element 828 maylaunch a media player application program. Using the media playerapplication program, Jim may navigate a media collection and select amedia file for audile and/or visual output by the mobile device 804.Selection of the “Exit Car Mode” interface element 830 may cause the cardock specific desktop 818 to disappear and be replaced by a desktop thatis displayed during an undocked state of the mobile device (even thoughthe mobile device may remain in the dock).

As illustrated in FIG. 8, the car dock specific desktop 818 is rotatedto present the display in landscape mode (e.g., a mode where a defaultorientation of text is presented to read along a longest dimension ofthe display, or a mode where a vertical orientation of display contentappears along a shortest dimension of the display). In some examples,the car dock specific desktop 818 is displayed in landscape moderegardless of an orientation of the mobile device 814, while a displayof the desktop while the mobile device is not docked may appear ineither landscape mode or portrait mode, depending on an orientation ofthe mobile device 804 (e.g., as determined by an accelerometer sensor).In some examples, upon the mobile device 804 being placed in the cardock 802, the touch sensor buttons 832 a-d are deactivated so that thebuttons do not cause a change to the display if selected. The touchsensor buttons 832 a-d, however, may be active when the mobile device isnot docked, or when the mobile device is in a different type of dock.

A background display 834 is displayed as lying behind partiallytransparent selectable interface elements 820-830 (elsewhere referred toas application program shortcuts). In some examples, the backgrounddisplay changes at least partially based on the geographical position ofthe mobile computing device. In this illustration, the backgroundillustrates an image of the ocean. For example, Jim may be driving upU.S. Route 101 along the Oregon west coast and an image of a place thatis nearby Jim's location may be retrieved from a server and may bedisplayed as the background display. If Jim were driving through themountains, an image that includes mountains may be selected.

In some examples, the background display is of a map, where the map pansas a location of the mobile computing device changes. For example, themap may show an overhead view of streets that are nearby the mobilecomputing device's present location, and an icon that represents acurrent location of the mobile computing device. As the geographicalposition of the mobile computing device changes, the display of the mapmay change. For example, when Jim is in Oregon, the map may show adisplay of the region of Oregon around Jim. As Jim drives north andreaches Seattle, the map may pan to show a map of Seattle. The map mayappear as the background display upon Jim docking the mobile device,without Jim supplying any user input subsequent to docking.

FIG. 9 shows an example user interface profile that is displayed by amobile computing device upon docking in a desktop dock. The userinterface includes a configuration dialog box 906 that includes aninterface element for activating use of the dock for music, ringer, andalarm audio (but may silence other audio events). Like the configurationdialog box 806, the dialog box 906 may be presented a first time thatthe mobile device 804 is placed in the desktop dock, or if the mobiledevice 904 is placed in the desktop dock a subsequent time but if a userdid not previously select the “Remember Settings” interface element 910.

When the mobile device 804 is docked in the desktop dock, the mobiledevice 804 presents a user interface desktop 934 that is specific to thedesktop dock, and that is activated upon placing the device 804 in thedock. The user interface includes a contrast interface element 914 that,when selected, may dim the screen to facilitate use of the docked deviceas a bedside clock. The user interface includes an alarm interfaceelement 916 that a user can select in order to set or cancel alarms. Insome examples, the next scheduled alarm is displayed on the desktop(e.g., behind the dialog box 906).

The photo interface element 918 may be selected to display an interfacefor viewing pictures or a slideshow of pictures. The media interfaceelement 920 may be selected to launch an interface for playing mediathat is stored on the mobile device 804, or that the mobile device 804can access over a network. The home interface element 922 may beselected to bring a user back to a display of a desktop user interfacethat is displayed when the mobile device is undocked.

FIG. 10 shows a modification to an example user interface profile thatis displayed by a mobile computing device upon docking in a car dock. Inthis example, a user may modify the desktop by dragging applicationprogram shortcuts (e.g., graphical interface elements that, whenselected, cause the mobile computing device to launch a correspondingapplication program) to different locations, deleting applicationprogram shortcuts, and adding new application program shortcuts.

For example, a primary user input selection (e.g., a single tap with afinger) of the “Maps” application shortcut 1002 may cause the mobiledevice to launch the maps application program. A secondary user inputselection (e.g., a single press and hold with a finger) of the same“Maps” application shortcut 1002 may invoke a user interface state thatallows moving the “Maps” application shortcut 1002.

In FIG. 10, a user has pressed the Maps application shortcut 1002, heldthe shortcut to invoke a modifiable user interface, and is in theprocess of moving the shortcut 1002 to a different location. Upon userterminating user contact with the display, the shortcut 1002 may move toa selected location (e.g., a location in the two-by-three-grid ofinterface elements that is closest to the location of release). Otherinterface elements may shift to different grid positions if the selectedgrid position is occupied. The user may alternatively drag the shortcut1002 to the trash icon 1008 in order to remove the shortcut 1002 fromdisplay.

In various examples, each location in the grid that does not include anapplication program shortcut may display an interface element that, whenselected, prompts a user to add an application program shortcut at thedisplayed location (e.g., with the text “Add shortcut”). The “Addshortcut” interface elements (e.g., interface elements 1004 and 1006)may appear in the empty slots of the desktop grid during a first displayof the user interface upon docking the mobile device, or may appear onlyupon the user interface entering a “modifiable” state (e.g., upon theuser providing a long press to either an application shortcut or a blanklocation in the desktop).

FIG. 11 shows a flowchart of an example process for displaying adock-specific profile. In box 1102, a mobile computing device determinesthat the device has been docked, for example, by identifying that anelectrical signal is being received from the dock. The determinationthat the device has been docked may include determining a type of thedock (box 1104). The type of dock may be determined based on a serialdigital signal that the mobile device receives from the dock. The dockdetermination operations are described in more detail throughout thisdocument, for example, with reference to FIG. 7.

In box 1106, the mobile device determines whether the device haspreviously docked with the type of dock. For example, the device, whendocked, may store an indication that the device has docked. Thus, upon asubsequent docking, the mobile device can check to see if the indicationis stored, and, if the indication is not stored, the device maydetermine that it has not previously docked with the type of dock. Invarious examples, the indication is stored by the dock and istransmitted to the mobile device upon docking. If the mobile device isbeing docked for the first time, the dock configuration interface may bedisplayed (box 1110). In various examples, the indication identifies atype of the dock, so that the configuration interface may be displayedonly when a device is docked for a first time with a particular type ofdock, even though the device may have previously docked with other typesof docks.

In box 1110, a dock configuration user interface is displayed. In someexamples, the configuration user interface is specific to the dock. Inother words, the mobile device may be configured to dock with multipletypes of docks, and a different configuration interface may display foreach dock. For example, the dialog box 806 may be displayed the firsttime a mobile device is docked with a car dock, and a dialog box 906 maybe displayed the first time the mobile device is docked with a desktopdock.

In box 1112, the configuration user interface displays user interfacecontrols that enable a user to adjust communication settings between thedock and the mobile device. In various examples, the user interfacecontrols enable the user to activate settings for wirelesslytransmitting specific types of information between the dock and mobiledevice. For example, activation of a first setting may cause the mobiledevice to transmit to the docking system audio that is generated by oneor more media player application programs. Activation of a secondsetting may cause the mobile device to transmit to the docking systemaudio that is received during a telephone call, and to receive from thedocking system audio that a microphone in the docking system receivesduring a telephone call. Activation of a third setting may togglewhether the mobile device terminates a wireless connection with the dockupon undocking, or whether the wireless communication persists uponundocking.

In box 1114, the configuration user interface displays a user interfacecontrol for saving a current configuration (e.g., a current useractivation of settings). For example, if the user selects the userinterface control 910, the user settings may be stored upon selection ofthe “OK” button 912. Thus, upon subsequent docking of the mobile devicewith the same dock or type of dock, the configuration user interface maynot be displayed. Instead, the user interface desktop 934 may displaywithout presentation of the configuration dialog box 906.

Accordingly, at box 1108, a determination is performed whether themobile device should present a configuration display when the device hasbeen docked, but the device is not being docked for a first time. If theconfiguration settings have not been saved (as described above withreference to interface control 910), the configuration user interfacemay be displayed again. If the configuration settings have been saved,the configuration user interface may not be displayed.

Regardless, upon docking, a dock-specific user interface profile isdisplayed to a user (box 1116). The dock-specific user interface caninclude the display of the dock configuration user interface in theabove-described circumstances (box 1110), and can also include a displayof a dock-specific background (box 1118), or a shortcut modificationinterface (box 1124), among various examples.

In box 1118, the mobile computing device displays a dock-specificbackground. In some examples, a background is a display that ispresented as a backdrop to a set of icons that a user may select forlaunching corresponding application programs. These icons may bereferred to as application program shortcuts. The application programshortcuts may each reference an application program that the user hasdownloaded to the mobile device from an application store.

The combination of the application program shortcuts and the backgroundis referenced herein as a mobile device “desktop.” The desktop may be afirst display that is presented to a user upon docking a device, or uponacknowledging settings in a configuration screen. The desktop may be afirst display that is presented to a user upon turning the device on,and possibly navigating past an authentication interface or a deviceunlocking interface. The desktop may display upon user selection of ahardware button (e.g., the button 832 c).

In some examples, the background display is updated based on ageographical location of the mobile computing device (box 1120). Forexample, the background display may include a geographical street map,and the displayed portion of the street map may change as the mobiledevice geographically moves so that a center of the street mapcontinuously corresponds to a location of the mobile computing device onthe street map.

In some examples, the background updates for a specific type of dock,but not for another type of dock. For example, the background displaymay not update based on a geographical location of the mobile computingdevice when placed in a second type of dock (box 1222). For example, thebackground may update periodically to include another picture from acollection of the user's photographs. The selection of the picture maynot be based on geographical location, however. Accordingly, whether ornot a background updates based on geographical position may depend on atype of dock.

In box 1124, a shortcut modification interface is displayed by a mobilecomputing device. For example, the user interface of FIG. 10 may bedisplayed to a user when the mobile device is placed in a car dock. Theshortcut modification interface may display a collection of applicationprogram shortcuts in a grid, where each application program shortcut maybe snapped to a grid location. In this example, those locations that donot include an application program shortcut include an icon that may beselected to generate an application program shortcut (e.g., icons 1004and 1006).

User selection, for example, of icon 1004 may invoke a user interfacefor selecting an application program that an application programshortcut that is generated in the selected location may launch. Invarious examples, every position in the grid that is not occupied by anapplication program shortcut includes an icon for generating anapplication program shortcut. In various examples, the icons forgenerating the application program shortcuts are displayed upon enteringa state for modifying the desktop, for example, upon selection of an“Edit Desktop” user interface element.

In box 1128, an application program shortcut (e.g., interface element1002) is moved by dragging the application program shortcut to a newlocation in the grid. If the new location already includes an existingapplication program shortcut, the existing application program shortcutmay change in visual appearance (e.g., to highlight a border). Uponrelease of the application program shortcut that is being moved, theapplication program shortcut may “drop” into the new location, and theapplication program shortcut that was at the new location may move to adifferent location.

Accordingly, with respect to docking of a device, various actions aredisclosed that may occur automatically (i.e., without user intervention)when a user docks their mobile computing device to a base or dock. Forexample, the device can recognize an environment that is associated withthe dock and may change modes to match that environment.

The mode of operation of the device may change automatically in responseto the device being docked. In general, the mode of operation may bechanged so that the current mode of operation matches the environment orcontext in which the mobile computing device has been determined to ofbeen placed. For example, if the environment is determined to be a dockattached to a video monitor, the mode of operation may be changed bylaunching a media player and arranging the media player to displayvideos that are available for playing on the device.

In contrast, if the dock is determined to be a music dock, the mediaplaying application may be launched again, but a library of the user'smusic may be highlighted on the device. If the dock is determined to bean automotive dock, the device may be placed into a mode appropriate foractivities in an automobile, such as a mode that shows a mappingapplication or a navigation application, and a GPS unit on the devicemay be turned on and activated automatically so as to enable real-timeupdating of the mapping application or navigation application.

Effect of Undocking a Mobile Computing Device

FIG. 12 shows an example flowchart for delaying wireless terminationupon undocking of a mobile device. As described throughout thisdocument, a mobile computing device may establish wireless communicationwith a dock upon placement in the dock. The mobile device maysubsequently be removed from the dock for a short period of time withouttermination of the wireless communication session. If the mobile deviceis placed back in the dock within the period of time, the wirelesscommunication may not be interrupted.

As an illustration, the mobile device may be placed in the desktop dockthat is described throughout this document. Because the mobile devicemay gently rest in the desktop dock without significant restraint, auser may unknowingly cause disruption of physical electrical power orcommunication transfer between the mobile device and the dock whentouching the mobile device's screen. Further a user may accidentallyknock the mobile device out of the dock, or may remove the mobile devicefrom the dock and shortly thereafter decide that the user does not wantthe device to transition to an undocked graphical interface. In all ofthese cases, the user may quickly place the device back into the dockwithout termination of the wireless communication session. Rather, awireless communication session may only terminate if the mobile deviceremains undocked a predetermined amount of time (e.g., two seconds).

In box 1202, a mobile computing device determines that the mobilecomputing device has been docked. For example, the mobile computingdevice may receive an electrical signal that indicates that the mobiledevice has been physically placed in a dock. Various mechanisms fordetermining that a mobile device has been docked are describedthroughout this document.

In box 1204, wireless communication between the mobile device and thedock is established. For example, the dock may transmit to the mobiledevice a dock identification number, a BLUETOOTH address, and aBLUETOOTH pin code. The mobile computing device may use the receivedinformation to establish wireless communication (e.g., a BLUETOOTHwireless communication session) with the dock. As described throughoutthis document, the mobile device and the dock may use wirelesscommunication to exchange media data (e.g., music or video data).

In box 1206, the mobile computing device determines that the device hasundocked. The determination may be performed by sensing a termination orchange in a signal that the mobile device had used to determine that thedevice was docked. For example, if the mobile device determined that thedevice was docked by sensing that the device received electrical powerfor charging a battery, the mobile device may determine that the deviceis no longer docked when the device senses that the electrical powerceases. In some examples, the mobile device receives a periodic signalover the physical data connection that provided the dock identificationdata, and cessation of the periodic signal may indicate that the mobiledevice is no longer docked. In some examples, the dock determines thatthe mobile device is no longer docked and wirelessly transmits anindication to the mobile device informing the mobile device that thedevice is no longer docked.

In box 1208, the mobile computing device invokes a delay before themobile device terminates the wireless communication with the dock. Insome examples, the mobile device queues a message to terminate thewireless communication with a one-second delay. In some examples, themobile device activates a one-second timer without placing thetermination message in a queue (and executes the termination uponexpiration of the timer, as described below). In various examples, thedelay may be 0.2 second, 0.5 seconds, 0.8 seconds, 1.0 seconds, 1.5seconds, 2 seconds, 5 seconds, or 10 seconds.

In box 1210, a user alert is provided. For example, upon a mobile devicedetermining that it is undocked, the mobile device may audibly beep orwirelessly provide a beeping audio signal to the dock for audibleoutput. In some examples, the mobile device may display a prompt on themobile device's display. In some examples, the mobile device or dock mayflash a notification light.

In box 1212, the mobile device determines if the device has been docked.For example, the mobile device may identify if the determination thatwas described with respect to box 1202 is performed again. If the mobiledevice is re-docked during the delay period, the queued message toterminate the wireless communication may be deleted. On the other hand,if the mobile device is not re-docked during the time period of thedelay, the wireless communication may be terminated (as described withreference to box 1214).

In box 1214, the wireless communication between the mobile device andthe dock is terminated. For example, the mobile device may send acommand to break down the wireless communication session, or vice versa.The wireless communication may remain inactive until the mobilecomputing device is docked yet again.

In various examples, the operations of boxes 1202 through 1214 areperformed without receipt of user input. Instead, a user's only contactwith a mobile device may be manipulation of the mobile device inrelation to a location of the dock.

FIG. 13 shows a user interface of a mobile computing device that hasbeen removed from a dock, but that remains in wireless communicationwith the dock. As described throughout this document, for example withreference to FIG. 12, a mobile computing device that is placed in a dockmay establish wireless communication with the dock. A user may adjustconfiguration settings to define an effect of undocking on the wirelesscommunication. In some examples, the user may prefer that the mobiledevice terminate the wireless communication after a brief time period(e.g., as described with reference to FIG. 12). In other examples, theuser may prefer that the mobile device remain in communication with thedock.

As an illustration, a user of a mobile computing device, Jim, may placehis mobile device in a dock, and may play a music album from hiselectronic media library. The mobile device may wirelessly transmit themusic to the dock, and the dock may audibly output the music over astereo system that Jim has connected to the dock via an audio outputcable.

Jim moves around his living room performing chores and listening to themusic, until the music suddenly dims and is replaced by the sound of aringing telephone. Jim speaks “Answer Call” into free space, amicrophone in the dock picks up Jim's words, and the dock wirelesslytransmits the words to the mobile device. The mobile device may use aspeech recognition system to determine whether the received audioincludes a spoken command. In this example, the spoken command “AnswerCall” causes the mobile device to perform an action to answer theincoming telephone call. Jim chats with the calling party for a while,and the calling party's voice is output over Jim's stereo system. Aftersaying goodbye, the calling party hangs up, ending the call. The musicresumes playing over the stereo system.

Jim may decide to do chores in another room, and thus walks over to thedock and pulls the mobile device out of the dock. Because Jim hasconfigured his mobile device so that the wireless communicationcontinues when the device is undocked, the music may continue to playover the speakers even though Jim has walked into the other room withhis mobile device.

In some examples, upon Jim undocking the mobile device, anundocked/communicating user interface profile is presented, where theundocked/communicating user interface profile is specific to the mobiledevice being undocked but wirelessly communicating with the dock. Invarious examples, the undocked/communicating user interface profile isdifferent than a docked user interface profile that is presented whilethe mobile device is docked, or an undocked/non-communicating userinterface profile that is presented while the mobile device is undockedbut is not in wireless communication with the dock. The mobile computingdevice may, in various examples, switch from theundocked/non-communicating profile, to the docked profile, to theundocked/communicating profile without receiving user input. The usermay only manipulate the mobile device in to and out of the dock.

An example undocked/communicating user interface profile is shown inFIG. 13. In this figure, the mobile computing device is displaying adock control interface 1302 over a desktop display 1330. In someexamples, the dock control interface 1302 may appear automatically uponundocking without receipt of user input. In some examples, a user maytoggle display of the dock control interface 1302 with selection of anicon 1332 that displayed in the mobile device's status bar. The icon1332 may appear when the mobile computing device undocks.

The dock control interface 1302 includes interface elements formodifying dock operation and modifying the type of data that iscommunicated to the dock. For example, the dock includes a first button1306 for increasing dock volume and a second button 1308 for decreasingdock volume. Upon user selection of the increase volume button 1306, themobile device may transmit a command to the dock to amplify the audiosignal that the dock is outputting over its speakers. The dock mayreceive the command and may change a gain of an amplifier that is partof the dock.

The dock control interface 1302 may display controls for eachapplication program that is communicating with the dock. In thisexample, Jim has previously launched a media player application program,which is playing a music album. As a result, controls that are specificto the media player application program are displayed in the interface1302. For example, the interface 1302 includes a “Pause” media filebutton 1312 and a “Next” media file button 1314.

The dock control interface 1302 includes an “Options” button 1316. Userselection of this button may cause the interface 1302 to expand so thatadditional options can be displayed. Example additional options includeconfiguration options for managing wireless communication between themobile device and the dock. Another set of options can include a list ofapplication programs which may be activated for communication with thedock, but which are not presently active (e.g., a telephone applicationprogram, a baby monitor application program, and a game applicationprogram that can be played in cooperation with the dock).

The dock control interface 1302 may also include a “Disconnect fromDock” button 1318, which upon user selection may cause the wirelesscommunication to terminate. In some examples, application programs thatare communicating with the dock are terminated, or are placed in awaiting state (e.g., the media player application program may pause aplaying of a music album), upon disconnection. In some examples, thedock control interface 1302 may disappear from display (and the icon1332 may disappear) upon disconnection. In some examples, the dockcontrol interface 1302 may not appear until the user has again dockedthe device, and has removed the device from the dock. In other examples,the dock control interface 1302 may appear when the device is docked.

FIG. 14 shows another user interface of a mobile computing device thathas been removed from a dock, but that remains in wireless communicationwith the dock. The mobile device 1402 may store an indication that thedevice is undocked but in wireless communication with the dock. Thus,the mobile computing device, and application programs that are installedon the mobile device, may take advantage of an ability to determinewhether the mobile device 1402 is wirelessly communicating with thedock.

For example, a user of the device 1402 may launch an application programfor a car racing video game. The video game may be configured to executein two display modes. If the mobile computing device is undocked, but isnot wirelessly connected with a dock, the video game may display on asingle display (e.g., only the display of the mobile computing device).The single display may include controls for moving the car, along with aview of the active game content (e.g., a view of the car which the useris controlling).

If the mobile computing device is in undocked but is in wirelesscommunication with the dock, the video game may display on two displays(e.g., the mobile device and an auxiliary display 1404 that is connectedto the dock through an auxiliary video output). In this example, theapplication program displays the active game content on the auxiliarydisplay 1404, and the controls for moving the car on the mobile device1402. Accordingly, the mobile device, when wirelessly connected to adock, may enter a state that visually or audibly outputs informationthat is different than the visual or audible output when the mobiledevice is not in wireless communication with the dock.

In this example, wireless communication of video data to the auxiliarydisplay 1404 is illustrated by the wireless signal 1406. The wirelesssignal, however, may be transmitted to a dock, which may transmit thesignal to the display 1404 over a cable.

FIG. 15 shows a flowchart of an example process for maintaining awireless connection upon undocking. In box 1502, a mobile computingdevice determines that the device has docked. As an example, the mobiledevice may receive an electrical signal that was transmitted by thedock, and that indicates that the device has been docked.

In box 1504, the mobile device, upon determining that the device isdocked, establishes wireless communication with the dock. For example,the mobile device may receive a BLUETOOTH address from the dock, and mayestablish a wireless connection with the dock using the BLUETOOTHaddress.

In box 1506, the mobile device may determine that the device hasundocked. For example, the mobile device may determine that theelectrical signal described above with reference to box 1502 terminates.

In 1508, the mobile computing device maintains the wirelesscommunication with the dock even though the mobile device may no longerbe docked. The communication may remain in effect for an extended periodof time (e.g., one minute, five minutes, or sixty minutes), and mayterminate, for example, upon (i) the mobile device turning off, or (ii)the user providing user input that causes the mobile device to terminatethe wireless communication.

In box 1510, the mobile computing device displays a prompt uponundocking. The prompt may state that the wireless communication mayterminate if the user does not provide user input within a defined timeperiod. For example, the prompt may include, for example: (i) text thatstates “Maintain Wireless Connection?”, (ii) a selectable interfaceelement that states “Remain Connected”, and (iii) a selectable interfaceelement that states “Disconnect.” In some examples, the prompt includesa visual identification of a time that is remaining before the wirelesscommunication terminates. For example, the prompt may include anumerical countdown in seconds, or may include horizontal bar thatexpands across the display. In various examples, the prompt is displayedwithin 0.5 seconds, 1 second, 3 seconds, or 5 seconds of the mobiledevice being undocked. The prompt may display without the user providinguser input after the undocking.

Such operation by a mobile telephone may involve “Opt-In” maintenance ofthe wireless communication. In another example, the user is provided aprompt to “Opt-Out” of the wireless communication. If the user does notprovide input during the defined time period of display for the prompt,then the prompt may disappear and the wireless communication may remainconnected. For example, the prompt may state “Disconnect WirelessConnection?”

In box 1512, the user of the mobile device is provided an ability tocontrol the dock's operation via the wireless communication. Forexample, upon undocking, the mobile computing device may display thedock control interface 1302 of FIG. 13 (or may allow the user to selectthe dock icon 1332 upon disconnection). The dock control interface 1302may include a disconnect interface button 1318 that allows a user toterminate the wireless communication (box 1514).

In some examples, the dock control interface 1302 may includedock-specific settings (box 1516). For example, the mobile computingdevice may be able to connect with two different types of docks, butonly one of the types of docks may include speakers and an amplifier.Thus, the dock volume buttons 1306 and 1308 may only display upondocking/undocking to the dock with the speakers. The dock volume buttons1306 and 1308 may not be displayed upon docking/undocking to a dock thatdoes not include the speakers.

In some examples, the dock-specific settings are selectable userinterface elements that are displayed when the mobile device has beendocked/undocked, but not when the mobile device is presently docked. Thedock-specific settings may be displayed for multiple types of docks.

In box 1518, the mobile computing device invokes a master-slave mode. Asan example, upon undocking, the user may launch a television applicationprogram. Data for displaying a television channel may be received at themobile computing device over a network, and the mobile computing devicemay transmit the data to the dock. The dock may forward the data over anauxiliary output line to a television, which may display the televisionchannel to a user. The mobile device, however, may not display thetelevision channel. Instead, the mobile device may operate as a masterdevice that presents options to the user for modifying the display ofthe television channel (e.g., options to change the channel, fastforward, or rewind). Thus the mobile device may operate as a masterdevice that controls the operation of the slave device and that providescontent for display on the slave device (e.g., the dock/televisioncombination).

In various examples, a device when docked may make only an electricalcharging connection through the physical docking interface, and mayseparately and automatically make a wireless connection to the dock orto a device that is associated with the dock. For example, when a deviceis docked to a speaker system, the device may begin charging and mayalso establish a BLUETOOTH or similar connection to the speaker systemfor playing music stored (e.g., in MP3 format) on the device over thespeaker system. In this manner, when the device has charged, the usercan take it out of the dock while the music continues playing, and theuser could, for example, walk around and use the device, in effect, as aremote control for the speaker system (within the range of the wirelessinterface).

A wireless data connection of a may be created whenever the dock andmobile computing device are connected. For example, a wirelesshandshaking function may occur between the two devices, and the devicesmay then exchange information that identifies the type of dock, and thusthe context in which the device has been talked.

In various examples, separate wired and wireless connections may be madebetween a mobile computing device and a dock, or a device associatedwith a dock, when the mobile computing device is physically docked. Thewired connection may be a power connection in a familiar manner, and maybe used to recharge the mobile device while it is docked. A wired dataconnection could also be provided, but that data connection may bebroken if and when the mobile computing device is removed from the dock.Thus, as an alternative to, or in addition to, the wired dataconnection, a wireless data connection may be formed automatically whenthe docking occurs. Such a connection may be used to transfer files orother information between the mobile computing device and the dock or adevice associated with the dock, even after the device has beenundocked.

Thus, for example, a user may dock their portable computing device to amusic or video system, and a wireless handshaking negotiation may occurto establish a data link between the wireless computing device and thedock. The user may then choose to begin playing a media file, and themedia file may play through the dock such as when the dock is a speakersystem, or through a device associated with the dock, such as a videomonitor connected to the dock, where the dock provides for televisionplaying, recording, and similar functions, such as personal videorecorder functions. After a time period, the user may want to take themobile computing device with them but continue playing the media file orfiles that are stored on the mobile computing device. The user may thusundock the device, and the data transmission may continue over thewireless interface between the mobile computing device and the dock.With the device undocked, the user may employ the device like a remotecontrol, such as by moving throughout the user's home and changing mediafiles, adjusting volume levels, changing rooms in which the media willbe played, or other similar actions.

Determining a Change in Mode of Transportation

A mobile computing device may record a geographical location at which auser changed modes of transportation, for example, so that a user canfind a location at which the user parked his car, locked his bicycle, orgot on a public transportation system. As described in more detailbelow, the mobile device may determine the geographical location withoutthe user providing user input.

FIG. 16 shows an example user interface of a map that identifies alocation at which a user changed his mode of transportation. In thisexample, the user has driven up Trinity Road and turned into the NorthTower Mall parking lot. The user drove through the parking lot, parkedhis car, and got out to walk around the mall for a while. The usereventually decides that he is done shopping and walks outside into theparking lot. The user cannot find his car so he pulls out his mobiledevice and launches a “Maps” application program.

The maps application program displays an overhead view of a street map1602. The map displays the last location that the user had viewed (e.g.,a different part of the city), so the user selects the “presentlocation” interface element 1604. In response, the map displays the areaaround the user's present location, and displays a blinking graphicalinterface element 1610 that illustrates the mobile device's presentgeographical location (e.g., as determined using cell phone transmittingtower triangulation or a satellite based positioning system).

The display of the user's present location does not help the user findhis car, so the user presses the “history” interface element 1606. Inresponse, the line 1612 is displayed on the map. The line 1612illustrates a recent route of the mobile computing device based onperiodically determined geographical locations of the mobile device. Insome examples, each of the geographical locations may be illustratedwith a graphical element (e.g., dots 1614 a and 1614 b may identify pastgeographical locations of the mobile device). The line 1612 may “connectthe dots” with linear line segments or non-linear line segments.Non-linear line segments may be based, in part, on a trajectory of themobile device, and may be based, in part, on known transportation routes(e.g., streets or public transportation lines that are near thegeographical locations and which the mobile device is determined to betraveling along). During this view of the map 1602, the line 1612 mayremain the same thickness and color throughout the entire route up tothe user's present location.

Upon seeing the line 1612, the user may have a better idea of where hiscar is, but may not know be fully sure where upon the line he parked hiscar. Thus, the user may select the “vehicle change” interface element1608. In response, the mobile device may determine that the devicechanged a transportation mode at location 1616 from a motorized vehicleto walking. Accordingly, the mobile device may display graphicalinterface element 1616 as being different than the graphical interfaceelements for the rest of the locations of the route. In thisillustration, an extra circle has been drawn around geographical element1616. In various examples, a size of the graphical element may bedifferent, a style of the graphical element may be different, or a colorof the graphical element may be different.

Further, the mobile device may determine that the user switched to alower-speed form of transportation at interface element 1616 (e.g.,switched from car to walking). Thus, the portion of the line 1612between the geographical element 1616 and interface element 1610 may benarrower than the portion of the line 1612 that precedes interfaceelement 1610. In various examples, the line 1612 may be divided intodifferently styled portions or differently colored portions.

As described in more detail below, the mobile device may use variousmechanisms to determine a geographical location at which the device (andthe user by inference) switches transportation modes. In a firstexample, the geographical location is selected as the location of themobile device when the mobile computing device is undocked from dock.For example, the user may have placed the mobile device in a car dock,and the mobile device may be able to determine that an electrical signalfrom the car dock terminates when the user pulls the mobile device outof the dock. In a second example, the geographical location isdetermined based on a change in speed of the mobile computing device.

FIG. 17 shows an example display of data that may be used to determine alocation at which a user changed his mode of transportation. A timecolumn 1702 and position column 1704 display data that was periodicallydetermined, for example, by a mobile computing device using GlobalPositioning System techniques. In this illustration, a new location wasdetermined every minute. The time, however, may increment at more orless frequent intervals, and the interval length may differ betweenlocation determinations (e.g., based on a speed of the mobile device).In various examples, the location determinations are stored in theposition column 1704 as geographical coordinates (e.g., latitude andlongitude). The full coordinates are not displayed in this illustrationfor lack of space.

The speed data (column 1706) may be determined based on the time dataand the position data. As an example, a distance between a firstgeographical location and a second geographical location may bedetermined. A time difference may be determined over the same interval.The distance may be divided by the time to determine a speed, which maybe stored in association with either the first time or the second time.

In various examples, a moving average speed (column 1708) is determined.A moving average speed may be an average speed for a set of recenttimes. For example, a moving average for a particular time may be anaverage of a speed for the particular time and the speed for twopreceding times (e.g., as illustrated in FIG. 17). Where positionreadings were not obtained at regular intervals, the moving average maybe performed on all speeds that were calculated for a particular rangeof time (e.g., three minutes).

The moving average may be used to determine when a mobile device hasdropped below a threshold speed for an extended period of time, asopposed to a temporary stop. As an illustration, a train may travel at45 mph between stations, but may stop for thirty seconds every so oftenat a station. A user of a mobile device, however, may remain on thetrain through several station stops. When the user gets off the train,the user may begin walking and may thus not exceed a speed of fourmiles-per-hour for ten minutes.

With each passing minute the moving average may take less and less ofthe train speed into account. Thus, at some point, the moving average isonly taking the walking speeds into account (or is only substantiallytaking the walking speeds into account) and the moving average speeddrops beneath a threshold. At this point, the mobile device hasdetermined that the user has switched transportation mode.

Still, now that the mobile device has determined that the user hasswitched to a different transportation mode, the mobile device may goback and determine a geographical location of the mobile device wherethe switch occurred. In some examples, the mobile device bouncesbackward in time until a speed of the mobile device is encountered thatexceeds a walking speed. The location of the mobile device temporallyafter the encountered speed may be the geographical location where thechange in transportation mode occurred (e.g., the best guess that themobile device can make based on the set of data points).

In FIG. 17, the geographical position, time and speed at which themobile device switched transportation modes is identified with circle1710. For this example, the user is driving a car down the road. Theuser, at one point, stops the car at a traffic light and his averagespeed, at identifier 1712, drops to two miles-per-hour (the speed maynot be zero miles-per-hour because the user may not have remainedstopped at the traffic light for the entire minute between locationreadings). The moving average at the time 3:44 remains at 24.7miles-per-hour because the moving average also accounts for the speedsat times 3:43 and 3:42. A few minutes later, however, the user turnsinto a parking lot and slows down, causing his speed to reduce to 11miles-per-hour. Eventually the user parks his car, around time 3:49, andwalks into the mall. The user walks for the next several minutes withhis average speed per minute not exceeding four miles per hour. Thus, atime 3:49 is recorded as a time at which the mobile device determinedthat the user switched transportation modes.

FIG. 18 shows a flowchart of an example process for determining ageographical location at which a user changed a mode of transportation.In box 1802, a change in mode of transportation is determined. Thechange may be determined using, for example, any combination of thebelow described methods. Accordingly, a determined change intransportation mode may be probabistically determined based oncomputer-automated mechanisms, and may or may not represent an actualphysical change in transportation mode of a user.

In some examples, the change in transportation mode is determined basedat least in part on an interruption of an electrical signal that themobile computing device receives from a dock (box 1804). For example,the mobile device may be physically placed into a dock (e.g., the cardock of FIG. 4). The dock may provide electrical power to the mobiledevice using pin 432, and may communicate a digital signal to the mobiledevice using pin 428. As described throughout this document, the powerthat is provided through pin 432 may be used to charge a battery of themobile device, and the pin 428 may be used to provide information forestablishing a wireless communication between the device and the dock.In some examples, the device is determined to be docked when the devicereceives electrical energy that is wirelessly transmitted to the deviceby way of inductive coupling (e.g., through the use of a charging pad).

The mobile device may determine that the device is docked (box 1806)upon sensing a presence of either of these electrical signals. Themobile device may determine that the device has been undocked based onan interruption in either of these electrical signals (box 1808). Adevice that is docked may be determined to be associated with a firsttransportation mode, while a device that has been undocked may bedetermined to be associated with a second transportation mode.

In various examples, the mobile device may not receive, from the dock,an electrical signal that is indicative of undocking. Rather, the mobiledevice or dock may include a sensor that determines when the mobiledevice has been physically separated from the dock. The sensor may be acompression sensor, a proximity sensor, or a magnetic sensor, amongvarious examples. In some examples, a determination that the mobiledevice has changed from a first transportation mode to a secondtransportation mode is performed if the device remains undocked for apredetermined time period (e.g., as described throughout this document).

In some examples, a change in transportation mode is determined based atleast in part on a change in the device speed (box 1806). For example,the mobile device may repeatedly determine whether an average speed ofthe mobile device is below a threshold value (box 1808). The averagespeed of the mobile device may be calculated in various manners, but mayremain an average speed of the device over a time period that is greaterthan two adjacent location determinations.

In a first example, the average speed is calculated as a moving averageof multiple recent speed measurements. In a second example, the averagespeed is calculated as an average speed over a time period that isgreater than two adjacent location readings. In other words, althoughthe device may include location readings for each minute, an averagespeed may be calculated using a most recent location reading and alocation reading from five minutes ago.

The mobile device may determine if the average speed falls below athreshold value. In some examples, the threshold value corresponds to awalking speed of an individual (e.g., 4.1 miles-per-hour). If theaverage speed falls below the threshold, the mobile device may determinethat the transportation mode of the mobile device has changed. Invarious examples, an average speed is effectively calculated bydetermining that multiple successive speed determinations fall below thethreshold.

Once the transportation mode is determined to have changed, the mobiledevice may identify the geographical location at which the transition intransportation mode occurred (box 1810). For example, the mobile devicemay step backwards from a most recently calculated speed, comparing eachspeed to a second threshold that may greater than the first threshold(e.g., 12 miles-per-hour), until the speed exceeds the second threshold.The geographical location of the mobile device temporally after theidentified speed may be determined as the location at which the mobiledevice transitioned transportation modes. In other words, the determinedlocation may be a geographical location at an at least temporary restingposition of the mobile computing device.

In some examples, the second threshold is lower than the firstthreshold. The first threshold may be used to identify a change intransportation mode of the mobile computing device. For example, when auser pulls a car into a parking lot, the user may drive the car at a lowrate of speed just before parking. Thus, the user may travel at awalking speed for a short while before actually parking. A combinationof the slow driving and walking after exiting the car may be sufficientto cause the mobile device to identify a change in transportation mode.

The mobile device, however, should identify the location of thetransition in transportation mode as the location where the user parkedhis car. In some examples, such determination may be performed using asecond threshold that is lower than the first threshold, for example, athreshold that may be equivalent to being stopped or substantiallystopped (e.g., one mile-per-hour). Because the user may stopoccasionally when he is walking, the relevant stop may be the stop justafter the user parked (e.g., the oldest substantially stopped speedduring the period of time over which speeds were averaged in determiningthat the mobile computing device changed modes).

In various examples, a change in transportation mode may be similarlydetermined when a user moves from a low-speed transportation mode (e.g.,walking) to a high-speed transportation mode (e.g., biking). Forexample, the mode may be determined to have changed when a mobile deviceexceeds a speed threshold for an amount of time. The geographicallocation of the transition may be the first speed that exceeds thethreshold.

In some examples, the change in transportation mode is determined basedat least in part on disconnection or connection of an auxiliary audiodevice (box 1812). For example, a user of a mobile device may connect acable to the mobile device's audio output terminal (e.g., a 3.5 mm audiooutput jack). The cable may connect the mobile device to, for example, acar stereo or an FM transmitter. A removal of the cable may indicatethat the car has stopped and that the user disconnected the auxiliaryaudio line so that the user could take the mobile device with him.

In other examples, the change in transportation mode is determined basedon connection of an auxiliary audio device. For example, a user maylisten to his car stereo while driving, but upon reaching a destinationmay exit the car and plug in headphones. The user may not be as likelyto connect headphones to the mobile device while the user is in the car.Thus, connection of an auxiliary audio device may indicate a changetransportation mode. In various examples, an external FM transmitterconnects with the mobile device via Bluetooth pairing or a proprietarydata connector.

In some examples, the change in transportation mode is determined basedat least in part on the device location changing in a defined manner(box 1814). For example, the mobile device may be determined to be in avehicle that is moving through a surface parking lot when the devicemoves in an “s” shaped route as a user seeks out an empty parking spot.The mobile device may be determined to be in a vehicle that is movingthrough a parking garage when the device doubles back over a previousgeographical location, but with a change in altitude (e.g., a change inaltitude that is greater than 2 meters).

The device or a server system may store several users' routes through aparking lot or garage, and may use the stored routes to identify when amobile device deviates from the route. For example, as a user enters aparking garage in his car, the user (and his mobile device) may follow asame winding path through the parking garage as other users. When theuser parks his car, however, the user's route may deviate slightly fromthe common route. Further, after parking, the user may walk in adirection that is opposite or tangential to the direction of car travel.Moreover, vertical movement of the mobile device (e.g., more than 5meters) without substantial horizontal movement (e.g., more than 5meters from a center point) may indicate that the user is walking upstairs or is taking an elevator, and thus is in a walking transportationmode.

In some examples, the change in transportation mode is determined basedat least in part on the geographical location of the device leaving aknown route (box 1816). For example, the mobile device may be dedetermined as traveling along a known rail line. If the mobile devicechanges trajectory to move away from the rail line, a determination thatthe mobile device has changed transportation mode may be achieved.Similarly, if the mobile device has been traveling along known roads andthen begins traveling across a city park which is not known to have anypreexisting vehicular transportation routes, a determination that themobile device changed transportation mode may be achieved.

In some examples, the change in transportation mode is determined basedat least in part on the device making an abrupt change in direction (box1820). For example, the mobile device may have been traveling ingraceful curves along a known rail route and suddenly leaves the railroute in a direction that is substantially back the same direction thatthe user came. Such a change in direction may be used, for example, toaid a determination that the device has left a known route, indistinction to the determined locations of the mobile device temporarilydrifting away from the actual position of the mobile device due toinaccurate position estimations.

In some examples, the change in transportation mode is determined basedat least in part on the device being near previously determinedlocations of changes in transportation mode for the device, or for usersof other devices (box 1818). For example, the mobile device maydetermine multiple locations of transportation mode changes, asdescribed throughout this document. These locations may be stored by aserver system as associated with a user account, and may be used toinfluence a determination whether a particular mobile device has made achange in transportation mode.

As an illustration, a subway station or a parking lot may correspond tomultiple determined changes in transportation mode (either of the useror of other users), while a freeway in the middle of Nebraska may not.Thus, a threshold or score that is determined using the describedmechanisms may be modified so that the system is more likely todetermine a change in transportation mode in the parking lot, as opposedto on the freeway (where a user may have ran into road construction).For example, the threshold value that must be achieved for determiningthat a geographical location of a mobile device has changedtransportation modes may be lower when near previously determinedchanges in transportation mode, than when away from previouslydetermined changes in transportation mode.

In some examples, the change in transportation mode is determined basedat least in part on the device being near known locations oftransportation mode change (box 1822). For example, a system may havestored in a database known locations of parking lots or known locationsof subway terminals. Thus, a determination that a mobile device is in ornear one of these locations may impact a determination whether a changein transportation mode has occurred.

Various combinations of the mechanisms described in boxes 1804 through1822 may be used to determine whether a change in transportation modehas occurred. In examples where multiple mechanisms are used, each ofthe used mechanisms may contribute a component score for a particulargeographical location to an overall score for the geographical location.When an overall score for a geographical location exceeds a thresholdvalue, the geographical location may be identified as a location oftransportation mode change.

In some examples, the change in transportation mode is determined basedat least in part on the device identifying a change in motion input. Forexample, the mobile device may include an accelerometer that candetermine multi-axis changes in acceleration. The accelerometer may beused to determine when the device changes from a first transportationmode to a second transportation mode. As an illustration, the mobiledevice may be able to identify that a repeating up and down movementcorresponds to the motion of a walking individual. A transition fromthis repeating movement to another repeating movement where the devicemoves up and down more abruptly, and where the up and down motions aremore irregular, may indicate that the device has transitioned to avehicle transportation mode.

Also, the accelerometer may be used to identify specific gestures thatsuggest that a user has changed transportation modes. For example, agesture may be a particular motion of the mobile device over a shortperiod of time (e.g., up to three seconds) that is associated with aparticular type of user action. Thus, the mobile device may be able todetermine a gesture that corresponds to undocking and placement of themobile device in a pocket or purse, a gesture that corresponds to a userpulling the mobile device out of a pocket or purse and placing themobile device in a dock, or a gesture that corresponds to a user sittingdown or standing up.

In some examples, the change in transportation mode is determined basedat least in part on the device identifying a signal from another device(box 1826). For example, a vehicle may transmit to a mobile device datathat identifies the characteristics of the vehicle (e.g., a wirelesstransmission of data that indicates whether the vehicle is parked, inreverse, or in drive). In another example, the mobile device is able todetect a wireless signal that locks or unlocks a vehicle. In anotherexample, the mobile device is able to detect connection of a pedometer.Such signals may be used to aid a determination of a transportation modeof the mobile computing device.

In some examples, the change in transportation mode is determined basedat least in part on the device identifying a signal from an applicationprogram (box 1828). For example, the device may determine that a userhas provided to a mapping application program user input that requestswalking directions, where the device may previously have been displayingdriving directions. In another example, the user may have marked avehicle parking spot as either available or unavailable using anapplication program that that crowd sources identifications of availableparking spots. In yet another example, the user may lock or unlock avehicle using an application program. Such signals may be used to aid adetermination of a transportation mode of the mobile computing device.

In box 1830, the location at the determined change in transportationmode is stored. For example, the mobile device or a server system maystore a geographical location of the mobile device, within no more thantwo minutes—and preferably under ten seconds—of the mobile deviceundocking (see box 1804). In some examples, the stored location is thelocation identified by the operations discussed with reference to box1810. In various examples, the mobile device or server system may beconfigured to store a single location, and upon receipt of a subsequentlocation that has been determined to represent a transportation modechange, may overwrite the value that is stored in the single location.In various examples, the mobile device stores multiple locations.

In box 1835, the user is prompted regarding the stored location. Forexample, upon the mobile device determining that the transportation modehas been changed, a dialog box may appear on the mobile device. Thedialog box may state “Record Location?” and include a selectable “Yes”interface element, and a selectable “No” interface element. The dialogbox may also include a text box that the user may select in order toenter a comment, for example, “Row 6, near the light pole.” Because thechange in transportation mode may not necessarily occur immediately uponthe user changing his mode of transportation, the prompt may appear witha display of a map and a graphical indication of the determinationlocation of mode transition. In some examples, the user can change thelocation of the mode transition, for example, by selecting a differentlocation on the displayed map.

In box 1840, an indication that the determined location is to bedisplayed is received. As an example, the user may finish shopping andforget where the user parked his car. The user may pull out his mobiledevice and provide user input to launch a “car finding” applicationprogram. In another example, the user may have spent the afternoonexploring New York City, all the while jumping on and off of varioussubways. The user may now be lost and need to determine how to get home.The user may pull out his mobile device and provide user input to launcha “maps” application program. A map of New York City may appear. The mapmay display the user's route by default and identifications of locationsat which a transition between transportation modes occurred.

In box 1842, the mobile computing device displays the one or morelocations that were stored with reference to box 1830. For example, a“car finding” application program may display a screen that includes adot that represents a location of the mobile device. The dot may appearaccurately placed with regard to a directional bearing or orientation ofthe mobile device (box 1848). For example, as the user turns the mobiledevice, the dot may move side to side on the mobile device. As the userwalks in the direction of the car, the dot may move closer to a bottomof the screen (where the bottom of the screen may represent a user'spresent location). Thus, the “car finding” application may mimic a“sonar” system that shows a bearing of and a distance to a target.

In some examples, the dot may appear for display on a map at a locationthat corresponds to the stored location. The map may also include adisplay of the user's present location (box 1844), and may also displaya recent route of the mobile computing device (box 1846). In variousexamples, the route may extend from the user's current location backthrough the location of the change in transportation mode, and beyond(e.g., until the route leaves the present map display or reaches apredetermined temporal age or distance).

In some examples, the route may only extend for a predetermined distanceor time beyond and in front of the location of the change intransportation mode. Thus, the route may provide a user with context asto what direction the user was traveling when the user arrived at thepurported change in transportation mode and what direction the user wastravelling when the user left the purported change in transportationmode. The limited display of the route, however, may not display a mostrecent portion of the route as to not distract the user from thelocation at the change in transportation mode.

As described with reference to FIG. 16, the user interface element atthe location of the change in transportation mode may be different thaninterface elements that identify other historical locations of themobile computing device, or may be an only user interface element on theline. In some examples, the route line or markers change type at thelocation of the change in transportation mode. For example, the line maybe narrower, a different color, or a different style after thetransportation mode change than before the transportation mode change.

In various examples, multiple user interface elements identifyingmultiple changes in transportation mode along a route may be displayed.In some examples, the display may be filtered to display portions of theroute that are specific to a particular type of transportation mode. Forexample, a user may view a map of the city of New York and filter thedisplay to show subway rides over the last 30 days. Even if the userdoes not filter the display, the subway rides may appear a differentcolor or style than walking routes, which may appear a different stylethan driving routes.

In various examples, the user interface element at the location of thechange in transportation mode may be an only user interface element of aparticular style along a route. Thus, the user interface element mayspecifically denote a unique event along a route, as opposed to achanging display of data (e.g., speed) for every data point along theroute, or for regularly occurring data points along a route. If theroute includes multiple unique events, the user interface elements mayoccur at non-regular periodic intervals along a route, where theoccurrence of the interface elements may be determined based on aprobabistically determined change in transportation mode.

In various examples, a method of marking a parking location may includesensing with a mobile computing device, an undocking event for themobile computing device. The method may include automaticallydetermining a current geographic location for the mobile computingdevice in response to sensing the undocking event. The method mayinclude registering the current geographic location in memory on themobile computing device. The method may include displaying to a user, ata later time, the stored geographic location to assist the user infinding the geographic location.

In various examples, the described mechanisms are performed by a mobilecomputing device and a server system. For example, the mobile computingdevice may determine periodic geographical locations of the mobiledevice and transmit the locations and corresponding times to a serversystem. The server system may perform the determination of whether atransportation mode may change and transmit back data for generating adisplay that is described with reference to box 1840.

Delaying Execution of Operations

FIG. 19 shows a user interface for delaying execution of a computerprocess. Mobile computing devices may operate from a rechargeablebattery source, which may be treated as a precious resource becauseexhaustion of power from the battery source may leave the mobile deviceinoperable until a user plugs the device into an external power source.Thus, there are various mechanisms to extend the battery life of amobile device. Some mechanisms include limiting the execution ofcomputer processes that are performed by application programs, as theprocesses can use battery power by their computational operation, andmay invoke the use of power-intensive radios for wireless transmissionof information.

Accordingly, a mobile computing device may limit the execution of someprocesses until the mobile computing device is connected to an externalpower source. Then the mobile device may use the external power tooperate the mobile device, or may user the external power to replenishbattery power that is used. Some processes may automatically defer theiroperation until the mobile computing device has been connected toexternal power. Other processes, however, may require a user prompt.

In FIG. 19, the mobile computing device is displaying a desktop userinterface, over a portion of which a process control user interface 1904is displayed. The process control interface 1904 allows a user to delayexecution of one or more executing processes, for example, until themobile computing device has been docked. In this illustration, theprocess performs a download of the application program “GreatCrosswords.”

The process control interface 1904 shows that thirty-five minutes remainin the download of the application program, that one hour and tenminutes remain in battery life if the process continues to download theapplication program, and that two hours and fifteen minutes would remainif the user delayed execution of the process.

A user may select the “Delay Until Device Docked” user interface element1906 to delay the download of the application program. Accordingly, uponselection, the download of the “Great Crosswords” application programmay be suspended until after the user places the mobile computing devicein a dock. As described in more detail later, the download may notcommence immediately upon docking. Instead, the mobile computing devicemay have performed an estimate of the battery power that would berequired to finish the download, and may wait until the battery has beencharged to this level.

The process control interface 1904 may be adapted to provide informationon multiple processes that may be executing on the mobile computingdevice, however, the single download is presented for clarity. Invarious examples, the process control interface 1904 may be displayedupon user selection of the “Suspend Processes” user interface element1908, which may persistently display in the top of the display whenevera process has been determined to be available for delayed execution,regardless of the application program that has device focus.

In some examples, the process control interface 1904 only displays thoseprocesses that a user of the mobile device may delay. As described inmore detail later, certain processes may register themselves asprocesses for which execution may be suspended and resumed. For example,the process may register as a type of process (e.g., the process mayregister as a “synching” operation), or the process may explicitlyidentify itself as a process that may be suspended. The registration mayoccur upon installation of an application program that launches theprocess. In some examples, the mobile device may add a process to theprocess control interface 1904 when the mobile device determines thatthe process has been operating without user input for a determinedamount of time (e.g., 30 minutes), and where another determined amountof time remains until completion of the process.

In any event, upon determination that a process may be temporarilysuspended, the user interface element 1908 may animate or the processcontrol interface 1904 may drop down from the top of the display,effectively prompting the user that one or more processes may besuspended. In some examples, a user is prompted when a battery leveldrops below a threshold level, when an estimated time of battery lifedrops below a threshold level, or when a rate of battery use exceeds athreshold level.

FIG. 20 shows a user interface for delaying execution of a computerprocess. In this example, the mobile device is presenting a userinterface 2002 that shows information on a third party applicationprogram, and that allows the user to download the third partyapplication program to the mobile computing device. Accordingly, a usermay cause the mobile device to download the “Cool Cross Words!”application program by selecting the install user interface element2004. In various examples, the user may select the install interfaceelement 2004 by tapping on the element, or by using physical mobiledevice buttons to select the element (e.g., moving a cursor over theelement, or using arrow keys to provide focus to the element and thenselecting an “enter” button). Such a user input may be referenced as a“primary” user input action.

In this illustration, a user has pressed his finger to the installinterface element 2004 and held his finger there until a dialog box 2006appears. The user moves his finger to the dialog box 2006 and selectsthe dialog box 2006. In a first example, the dialog box is selected bysliding a finger across the display without removing the finger from thedisplay, and then removing the finger from the display when the dialogbox 2006 has been selected. In a second example, the user may releasehis finger from the display and the dialog box 2006 may remain, allowingthe user to tap the dialog box 2006. In various examples, the secondaryuser input displays a menu from which the “Delay Execution” text appearsas one of many selectable choices.

The long press may be referred to as a “secondary” user input action. Asecondary user input may also be performed, for example, by tapping onan interface element with two fingers, by sliding a finger across a userinterface element, or by selecting a user interface element incombination with a physical button or another user interface element.The primary user input may likewise take many various forms.Accordingly, a single user interface element may provide for multiplemechanisms to select the user interface element.

In any event, selection of the “Delay Execution” dialog box 2006 maycause the dialog box 2008 to appear for display. The dialog box 2008 mayallow a user to either confirm or cancel that he wants to delayexecution of the command associated with the selected user interfaceelement.

The confirmation that execution of the command should be delayed maycause the mobile computing device to store an indication of the userinterface element that was selected (or the command that is associatedwith the interface element). The mobile computing device may also storean indication of the state of the application program or mobilecomputing device upon selection of the user interface element, which mayassist the mobile device in performing the process that the userintended that the device perform upon selection of the user interfaceelement 2004.

In the present illustration, the mobile device may store an indicationthat the “Application Store” application program was running, that theuser was viewing the “Cool Cross Words!” page, and that the userselected the “Install” button. Accordingly, upon the user plugging themobile device into external power, the device may be able to launch theapplication program, navigate to the page, and select the user interfaceelement.

In various examples, the dialog box 2008 appears upon the secondary userinput without display of the “Delay Execution” dialog box 2006. Invarious examples, the execution of the command is delayed immediatelyupon selection of the “Delay Execution” dialog box 2006, without thedisplay of the additional prompt 2008.

FIGS. 21A-B show a flowchart of an example process for delayingexecution of computer processes. In box 2102, the mobile computingdevice identifies a process for which execution should be delayed (alsoreferred to herein as suspension of the process). Although the mobiledevice may identify more than one process, this document references anidentification of a single process for purposes of simplicity. Asdescribed below, the process identification may be initiated by a user(box 2104), by the process itself (box 2106), or by an externalprocedure (box 2108).

In box 2104, a user initiates identification of a process for delayedexecution, for example, by providing user input that causes the mobiledevice to suspend execution of the process. Without the user input, theprocess may not suspend at all, or may not suspend for a substantialperiod of time (e.g., at least five minutes).

In box 2110, the user provides secondary user-input selection of aninterface element, for example, as described with reference to FIG. 20.In this manner, a user may identify a command that is associated withselection of a specific user interface element as a command that theuser would like the mobile device to perform, but at a different time.In such examples, a mobile device may not need to have extensivemechanisms for recognizing when to suspend processes and how to suspendprocesses that are already executing. Rather, the mobile computingdevice may, at some later point in time, execute the command byrecovering the state of an application program and executing the commandthat is associated with the primary user input for the user interfaceelement.

In box 2112, the user selects the process from a list of processes. Insome examples, the list of processes includes only those processes thatcan be suspended. Thus, the mobile device may have previously determinedwhich processes can be suspended (e.g., as described with reference tobox 2106).

The list of processes may include only active processes, or may furtherinclude processes that are not currently executing but that may executeon the mobile device. For active processes, the user may provide userinput to immediately suspend an active process, for example, asillustrated with respect to FIG. 19. For non-active processes, the usermay configure settings so that a non-active process is flagged forsuspension, either immediately upon execution when undocked or whenpredefined criteria are met.

In box 2106, an application program identifies processes for delayedexecution. For example, upon installation of an application program, theapplication program may identify itself or component processes asavailable for delayed execution, or may identify itself or componentprocesses as of a type that the mobile computing device recognizes asavailable for delayed execution.

In box 2114, the application program identifies a process as availablefor delayed execution. For example, a voice memo application program mayexplicitly register an “upload voice memos to server” process as aparticular process that may be suspended. Thus, when the voice memoapplication program requests that the voice memos be uploaded, themobile device may automatically queue the process for delayed execution(or may prompt the user whether the process should be queued or executedimmediately).

In box 2116, the application program identifies a process as of a typethat is available for delayed execution. For example, an applicationprogram may register a process as a “synching” set of operations. Theapplication program may not explicitly have requested that theparticular syncing operation be delayed. The application program,however, may utilize common libraries of executable code to perform thesynching operation and thus the mobile computing device may be able tosuspend any processes that have been registered by various applicationprograms as synching processes.

In various examples, the processes that have been identified asavailable are presented to a user in a list for user configuration, forexample, as discussed with reference to box 2112.

In box 2108, an external procedure initiates an identification of anexecuting process that should be delayed. The external procedure maymonitor processes that are currently executing on the mobile computingdevice, and decide that a particular process should be suspended basedon the particular process meeting specific criteria.

In box 2118, a process is suspended based on time criteria. In a firstexample, a process that has been executing for a threshold period oftime (e.g., five minutes, ten minutes, or thirty minutes) may beidentified for suspension. In a second example, a process that requiresan excessive amount of time until completion (e.g., an amount of timethat exceeds a threshold value) may be identified for suspension.

In box 2120, a process is suspended based on battery consumption. In afirst example, a mobile device is able to estimate an amount of batterypower that has been consumed by a process, and may suspend the processif the amount of battery power exceeds a threshold value. In a secondexample, an estimate of the amount of battery power that will berequired is performed, and if the process will require an excessiveamount of battery power (e.g., an amount that exceeds a thresholdvalue), the process may be identified for suspension.

In box 2122, a process is suspended based on a quantity of datatransfer. In a first example, a mobile device may suspend a process ifthe amount of wireless data transferred for the process exceeds athreshold value. In a second example, an estimate of the amount ofwireless data transfer that may be required to complete the process isperformed, and if the process will require an excessive amount ofwireless data transfer (e.g., an amount that exceeds a threshold value),the process may be identified for suspension.

In various examples, the criteria of boxes 2118, 2120, and 2122 includean amount of time, battery consumption or data transfer that occurswithout receiving any user input events during the amount of time,battery consumption or data transfer. Thus, a process may be identifiedfor suspension if the process has remained idle without user interactionwith the process. Thus, a user may not be affected so much if theprocess is suspended. A user input event may be an event that is causedby the user and that changes a sequence of process operations, where thechange in sequence may not otherwise occur without the user input.

In box 2130, execution of the identified process is delayed. In someexamples, the mobile computing device sends to the process (or to theapplication program that is hosting the process) a command that requeststhat the process suspend operation. In some examples, the mobilecomputing device forcibly halts execution of the process withoutnotifying the process. In some examples, the mobile computing devicestores a state of the process prior to suspension.

In box 2140, the mobile computing device determines that a power sourcehas been connected to the mobile device. For example, the mobile devicemay determine that the device has been placed in a dock, as describedthroughout this document.

In box 2150, the mobile computing device determines that execution ofthe identified processes (which were delayed at box 2130) may resume. Invarious examples, the resumption of the identified processes may occursubstantially immediately upon determining that a power source has beenconnected to the device (e.g., within thirty seconds). In otherexamples, the mobile device may first determine either that the batterylevel has reached a determined charge (box 2152), or that the computingdevice has received power a determined amount of time (box 2154). Insome examples, the user provides user input to resume execution of theprocesses, even though the mobile device has not been docked.

In box 2152, the mobile device determines that a battery level hasreached a determined charge. In a first example, the mobile device maydetermine that the battery level has reached a predetermined threshold(e.g., 20% of battery capacity). In some examples, the mobile device isavailable for use prior to the device reaching the threshold. Thus, auser may use the mobile device to make telephone calls while the deviceis at 10% of battery capacity.

In a second example, the mobile device may determine that the batterylevel has reached a determined threshold, where a charge at thedetermined threshold allows the mobile device to complete execution ofany processes that have been suspended. Thus, the mobile device maycalculate an estimate of battery capacity that is required to completeeach process in determining the threshold. If the processes cannot becompleted on even a full battery charge, the mobile device may beginexecution upon the device reaching a full charge, or substantially afull charge (e.g., within 5% of a full charge).

In a third example, the mobile device may determine that the batterylevel has reached another determined threshold, where a charge at theother determined threshold allows the mobile device to completeexecution of any processes that have been suspended and still have adetermined level of remaining battery charge upon completion of theprocesses.

In box 2160, the mobile device resumes execution of the identifiedprocesses. For example, upon the mobile device being connected to apower source for the requisite period of time, the mobile device maylaunch a state of a process into the state of the process prior tosuspension of the process.

In box 2162, execution of the identified process includes communicatingwith third-party devices. For example, the process which has resumedexecution may cause the mobile device to use its wireless radio toexchange data over a cellular network. In some examples, the exchange ofdata may not involve transmitting data through a device which physicallyprovides power to the mobile device. As an illustration, a dockedsmartphone may perform a syncing operation using a wireless carrier'snetwork or using a Wi-Fi signal instead of using a physical or wirelessdata path from the smartphone to the dock.

In box 2170, the mobile computing device determines that the powersource has been disconnected. For example, the mobile device maydetermine that power is no longer being received by the mobile device orthat the device has undocked, as described throughout this document.

In box 2180, the mobile computing device continues execution of theidentified processes upon power source disconnection. Accordingly, aprocess that was put on hold previously when the device was not dockedmay now be allowed to execute when the mobile device is not docked.

In box 2190, the mobile computing device suspends execution of theidentified processes in response to determining that the power sourcewas disrupted, for example, as performed in box 2130.

In various examples, a process may be an instance of a computer programthat is being executed. The process may include an actual sequentialexecution of instructions. A process may reserve memory during executionand may store variables in the reserved memory (e.g., memory that is notavailable to other processes). Suspension of a process may includehalting an execution of the instructions, storing a last performedinstruction, storing a to-be-next performed instruction, storing anyinformation in reserved memory, and storing any information in dataregisters.

Although the process that is described with reference to FIGS. 21A-Boften discusses actions that are performed by a mobile computing device,such actions may be performed by a server system in cooperation with themobile device. For example, and with reference to box 2152, a mobiledevice may take a voltage reading off of the device's battery, and maytransmit the voltage reading to a server system for calculation whetherthe voltage reading corresponds to a battery level that has reached anappropriate charge. The server system may transmit back to the device aresponse. Such client-server communication to receive an answer may beconsidered a determination that is performed “by the mobile computingdevice.”

In various examples, a charging device triggers specific actions. Manydevices today perform synchronization actions when docked to a computer.Many computers change settings when plugged in (e.g., longer timeoutinterval on screen's backlight). The idea may be to perform many actions(which could be user configurable) when the device gets plugged in.Examples include (1) generating thumbnails for all images on SD cardwhich is CPU intensive and takes a lot of power, (2) uploading all newpictures to online photo albums because using radio takes power, (3)downloading rich media stored on servers (e.g., pictures, friendspictures, and documents), and (4) switching all non-media and non-voicerelated application audio to speakerphone for a case where the phone isplugged into car power on the dash for an upcoming navigationapplication.

In certain situations, the docking may simply involve a recognition thatthe device has been connected to wired power (e.g., plugged into anelectrical outlet). In such a situation, the device may automaticallycommence performing power-hungry applications, such as transferringlarge files, updating video podcasts, and the like. The automaticperformance of such actions may also occur after a delay after pluggingthe device in, such as when the device has obtained sufficient charge sothat the actions can be completed even if a user unplugs the device fromoutlet power while the actions are being performed.

In one example operation of the device and dock, a mere arrival of wiredpower to the device may trigger the performance of certain actions—andspecifically actions that are determined to be power-hungryapplications, in that they use a lot of electrical power, and thus areactions that might not be advisable when the device is not dockedbecause they would significantly draw down battery power. Thosepower-hungry actions may include actions such as performing batch filetransfers, such as when a user has used their mobile device to recordconversations or videos while they're away from a docking station. Suchtransfers may normally be time-consuming and may consume substantialpower when performed over a wireless connection. Similarly, informationthat is stored in a location other than on the mobile device may bedownloaded to the mobile device when the mobile device is docked, eitherthrough the physical, or way of a wireless connection that is instigatedby the docking of the mobile computing device. Such a transfer mayinclude a transfer of media information, such as podcasts, that havearrived on a user's home computer while the user's mobile computingdevice was not docked to the home computer.

In certain instances, the device may be programmed to automaticallyobtain or provide certain information through the dock or with a systemthat is associated with the dock, in response to being docked. Forexample, when the dock is in an automobile, the device may obtaininformation about the current status of the automobile, including thecurrent RPMs of the automobile, the gear in which the automobile isoperating, a speed of the automobile, the status of air-conditioning andentertainment systems in the automobile, and other information. Inaddition, the device may be programmed to operate as a partial orcomplete head unit for an entertainment system in the automobile (or ascreen in the car can act as a head unit for the device).

For example, the automobile may be provided only with amplifiers,speakers, and associated hardware, but not input and output mechanisms.The mobile computing device may serve the role of the input and outputmechanisms, and may also provide for encoding and decoding of digitalmusic and other such common operations. In this way, an owner of anautomobile may be able to update the interaction of their car stereo byupdating software on the mobile computing device, and may customize theway that their entertainment system in their automobile interacts withthem. Also as the user acquires newer mobile computing devices, theuser's experience with their mobile entertainment system in theirautomobile may improve.

Moreover, the user may have a preferential experience because the userinterface that they face will not be different or substantiallydifferent between their interaction when they are at home or walkingaround, as compared to when they are driving their automobile. Themobile computing device may also act as a supplemental interface for aninterface that is part of the automobile. For example, the automobilemay provide for radio station selection and other common actions, whilethe mobile computing device may provide for selection of particular songtitles or other media files that are stored on the mobile computingdevice.

FIG. 22 shows an example system that includes a mobile computing deviceand a dock. The mobile computing device 2200 and dock 2240 are examplesof the mobile devices and docks that are referenced throughout thisdocument. The mobile computing device 2200 may operate in cooperationwith a server system. Thus, although components 2202 through 2224 areillustrated as being part of the mobile device 2200, the components maybe at least partially included in a server system that is incommunication with the mobile device.

The dock detector 2202 determines that a mobile computing device hasphysically paired with a dock. For example, the dock detector maydetermine that the mobile computing device has electrically coupled witha docking system that is adapted to supply electrical power for chargingthe mobile computing device. The dock detector may determine that thedocking system is a first type of docking system from a plurality oftypes of docking system, for example, by performing at least some of theoperations of the mobile computing device in FIG. 7 (e.g., boxes 702 to714), and by communicating with the dock via conductive pad 606.

The power sensor 2204 may be arranged to detect when the computingdevice is attached to a power source that is for charging the mobilecomputing device. In various examples, the dock detector 2202communicates with the power sensor 2204. In various examples, the powersensor 2204 is unable to distinguish between power that is beingsupplied through conductive pad 602 and power that is being suppliedthrough the data terminal 610.

The wireless connection establisher 2216 establishes a wirelesscommunication session between the mobile computing device and thedocking system in response to the dock detector 2202 determining thatthe mobile computing device has physically paired with the dockingsystem. Thus, the wireless connection establisher 2216 may perform atleast some of the operations of the mobile computing device in FIG. 7(e.g., boxes 716 to 732). The wireless connection establisher 2216 mayuse the dock type (as determined by the dock detector 2202) to identifya corresponding profile 2232 b, and access the wireless settings 2236 bin the corresponding profile. The wireless settings 2236 b may specify apreviously saved wireless network identifier and authentication code forestablishing the wireless connection with the dock. The wirelesssettings 2236 b may also specify types of wireless communication toactivate between the mobile computing device and dock, for example,whether the dock should act as a speakerphone, and whether the deviceshould audibly output audio that is generated by the mobile device.

The user interface selector 2206 may select a user interface profile foruse by the mobile computing device 2200 in response to the dock typedetector 2202 determining that the mobile computing device haselectrically coupled with the docking system and determining the type ofdocking system. For example, the user interface selector 2206 mayreceive from the dock detector 2202 a type of dock. The user interfaceselector 2206 may then use the type of dock to access a correspondingprofile from the repository of dock profiles 2230. The correspondingprofile may include settings for generating a unique graphical schemefor the user, for example, as referenced with respect to FIGS. 8-11.

The media streamer 2208 may wirelessly transmit, from the mobilecomputing device to the docking system, data that encodes an audiosignal so as to cause speakers of the docking system to audibly outputthe audio signal.

The location identifier 2210 may determine a geographical location ofthe mobile computing device, for example using Wi-Fi routeridentification, cell-tower triangulation, or satellite-based positioningsystems. Thus, the location identifier 2210 may determine a plurality ofgeographical locations of mobile computing device at a plurality ofrespective times. The mobile device may store the geographical locationsand the respective times in the location repository 2222.

The speed determiner 2212 may determine a plurality of speeds of themobile computing device based on the plurality of geographical locationsand the plurality of respective times, for example, as described withrespect to FIGS. 16-18.

The transportation mode determiner 2218 may determine a particulargeographical location at which the mobile computing device switched froma first transportation mode to a second transportation mode. The switchin transportation mode may be determined based on a change in speed ofthe mobile computing device or, for example, as described with respectto FIGS. 16-18.

The location displayer 2214 may display a visual indication of theparticular geographical location, for example, as shown in and describedwith respect to FIG. 16.

Multiple power-intensive processes 2224 a and 2224 b may performoperations that have been identified as excessive drains on batterylevels for the mobile device. Each process may be launched by anapplication program and may be terminated by an application program.

The power manager 2220 may withhold execution of operations of one ormore processes while the mobile device is not connected to the powersource, and trigger execution of the operations automatically inresponse to sensing with the power sensor 2204 that the device has beenconnected to the power source. The power manager may identify theprocesses, for example as described with respect to box 2102 (FIG. 21A).

The dock 2240 may include speakers 2242 and a microphone 2244, asdescribed throughout this document. The dock 2240 may also include awireless connection establisher 2246 to establish a wireless connectionwith a mobile computing device which has docked in the mobile device,for example, by performing the operations of boxes 710 through 730 inFIG. 7. The wireless connection establisher 2246 may send the dock typeidentifier 2248 to the mobile device 2200, to enable the dock detector2202 to determine the type of dock that the mobile device has matedwith. The dock 2240 may also store wireless settings 2250 that areparticular to the mobile device 2200. The wireless settings 2250 mayinclude a wireless network identifier and authentication code thatenables the dock 2240 to establish a wireless connection with the mobiledevice 2200 (after an initial pairing) without exchanging an address andpin code.

Referring now to FIG. 23, a conceptual diagram of a system that may beused to implement the systems and methods described in this document isillustrated. In the system, mobile computing device 2310 can wirelesslycommunicate with base station 2340, which can provide the mobilecomputing device wireless access to numerous hosted services 2360through a network 2350.

In this illustration, the mobile computing device 2310 is depicted as ahandheld mobile telephone (e.g., a smartphone, or application telephone)that includes a touchscreen display device 2312 for presenting contentto a user of the mobile computing device 2310 and receiving touch-baseduser inputs. Other visual, auditory, and tactile output components mayalso be provided (e.g., LED lights, a speaker for providing tonal,voice-generated, or recorded output, or vibrating mechanisms for tactileoutput), as may various different input components (e.g., keyboard 2314,physical buttons, trackballs, accelerometers, gyroscopes, andmagnetometers).

Example visual output mechanism in the form of display device 2312 maytake the form of a 3.7 or 4.3 inch LED or AMOLED display with resistiveor capacitive touch capabilities, for displaying video, graphics,images, and text, and coordinating user touch inputs locationally withthe displayed information so that user contact above a displayed itemmay be associated with the item by the device 2310. The mobile computingdevice 2310 may take alternative forms also, including as a laptopcomputer, a tablet or slate computer, a personal digital assistant, anembedded system (e.g., a car navigation system), a desktop personalcomputer, or a computerized workstation.

An example mechanism for receiving user-input includes keyboard 2314,which may be a full qwerty keyboard or a traditional keypad thatincludes keys for the digits ‘0-9’, ‘*’, and ‘#.’ The keyboard 2314receives input when a user physically contacts or depresses a keyboardkey. User manipulation of a trackball 2316 or interaction with atrackpad enables the user to supply directional and rate of rotationinformation to the mobile computing device 2310 (e.g., to manipulate aposition of a cursor on the display device 2312).

The mobile computing device 2310 may be able to determine a position ofphysical contact with the touchscreen display device 2312 (e.g., aposition of contact by a finger or a stylus). Using the touchscreen2312, various “virtual” input mechanisms may be produced, where a userinteracts with a graphical user interface element depicted on thetouchscreen 2312 by contacting the graphical user interface element. Anexample of a “virtual” input mechanism is a “software keyboard,” where akeyboard is displayed on the touchscreen and a user selects keys bypressing a region of the touchscreen 2312 that corresponds to each key.

The mobile computing device 2310 may include mechanical or touchsensitive buttons 2318 a-d. Additionally, the mobile computing devicemay include buttons for adjusting volume output by the one or morespeakers 2320, and a button for turning the mobile computing device onor off. A microphone 2322 allows the mobile computing device 2310 toconvert audible sounds into an electrical signal that may be digitallyencoded and stored in computer-readable memory, or transmitted toanother computing device. The mobile computing device 2310 may alsoinclude a digital compass, an accelerometer, proximity sensors, andambient light sensors.

An operating system may provide an interface between the mobilecomputing device's hardware (e.g., the input/output mechanisms and aprocessor executing instructions retrieved from computer-readablemedium) and software. Example operating systems include the ANDROIDmobile device platform; APPLE IPHONE/MAC OS X operating systems;MICROSOFT WINDOWS 7/WINDOWS MOBILE operating systems; SYMBIAN operatingsystem; RIM BLACKBERRY operating system; PALM WEB operating system; avariety of UNIX-flavored operating systems; or a proprietary operatingsystem for computerized devices. The operating system may provide aplatform for the execution of application programs that facilitateinteraction between the computing device and a user.

The mobile computing device 2310 may present a graphical user interfacewith the touchscreen 2312. A graphical user interface is a collection ofone or more graphical interface elements and may be static (e.g., thedisplay appears to remain the same over a period of time), or may bedynamic (e.g., the graphical user interface includes graphical interfaceelements that animate without user input).

A graphical interface element may be text, lines, shapes, images, orcombinations thereof. For example, a graphical interface element may bean icon that is displayed on the desktop and the icon's associated text.In some examples, a graphical interface element is selectable withuser-input. For example, a user may select a graphical interface elementby pressing a region of the touchscreen that corresponds to a display ofthe graphical interface element. In some examples, the user maymanipulate a trackball to highlight a single graphical interface elementas having focus. User-selection of a graphical interface element mayinvoke a pre-defined action by the mobile computing device. In someexamples, selectable graphical interface elements further oralternatively correspond to a button on the keyboard 2304.User-selection of the button may invoke the pre-defined action.

In some examples, the operating system provides a “desktop” userinterface that is displayed upon turning on the mobile computing device2310, activating the mobile computing device 2310 from a sleep state,upon “unlocking” the mobile computing device 2310, or upon receivinguser-selection of the “home” button 2318 c. The desktop graphicalinterface may display several icons that, when selected with user-input,invoke corresponding application programs. An invoked applicationprogram may present a graphical interface that replaces the desktopgraphical interface until the application program terminates or ishidden from view.

User-input may manipulate a sequence of mobile computing device 2310operations. For example, a single-action user input (e.g., a single tapof the touchscreen, swipe across the touchscreen, contact with a button,or combination of these at a same time) may invoke an operation thatchanges a display of the user interface. Without the user-input, theuser interface may not have changed at a particular time. For example, amulti-touch user input with the touchscreen 2312 may invoke a mappingapplication to “zoom-in” on a location, even though the mappingapplication may have by default zoomed-in after several seconds.

The desktop graphical interface can also display “widgets.” A widget isone or more graphical interface elements that are associated with anapplication program that has been executed, and that display on thedesktop content controlled by the executing application program. Awidget's application program may start with the mobile telephone.Further, a widget may not take focus of the full display. Instead, awidget may only “own” a small portion of the desktop, displaying contentand receiving touchscreen user-input within the portion of the desktop.

The mobile computing device 2310 may include one or morelocation-identification mechanisms. A location-identification mechanismmay include a collection of hardware and software that provides theoperating system and application programs an estimate of the mobiletelephone's geographical position. A location-identification mechanismmay employ satellite-based positioning techniques, base stationtransmitting antenna identification, multiple base stationtriangulation, internet access point IP location determinations,inferential identification of a user's position based on search enginequeries, and user-supplied identification of location (e.g., by“checking in” to a location).

The mobile computing device 2310 may include other application modulesand hardware. A call handling unit may receive an indication of anincoming telephone call and provide to a user capabilities to answer theincoming telephone call. A media player may allow a user to listen tomusic or play movies that are stored in local memory of the mobilecomputing device 2310. The mobile telephone 2310 may include a digitalcamera sensor, and corresponding image and video capture and editingsoftware. An internet browser may enable the user to view content from aweb page by typing in an addresses corresponding to the web page orselecting a link to the web page.

The mobile computing device 2310 may include an antenna to wirelesslycommunicate information with the base station 2340. The base station2340 may be one of many base stations in a collection of base stations(e.g., a mobile telephone cellular network) that enables the mobilecomputing device 2310 to maintain communication with a network 2350 asthe mobile computing device is geographically moved. The computingdevice 2310 may alternatively or additionally communicate with thenetwork 2350 through a Wi-Fi router or a wired connection (e.g.,Ethernet, USB, or FIREWIRE). The computing device 2310 may alsowirelessly communicate with other computing devices using BLUETOOTHprotocols, or may employ an ad-hoc wireless network.

A service provider that operates the network of base stations mayconnect the mobile computing device 2310 to the network 2350 to enablecommunication between the mobile computing device 2310 and othercomputerized devices that provide services 2360. Although the services2360 may be provided over different networks (e.g., the serviceprovider's internal network, the Public Switched Telephone Network, andthe Internet), network 2350 is illustrated as a single network. Theservice provider may operate a server system 2352 that routesinformation packets and voice data between the mobile computing device2310 and computing devices associated with the services 2360.

The network 2350 may connect the mobile computing device 2310 to thePublic Switched Telephone Network (PSTN) 2362 in order to establishvoice or fax communication between the mobile computing device 2310 andanother computing device. For example, the service provider serversystem 2352 may receive an indication from the PSTN 2362 of an incomingcall for the mobile computing device 2310. Conversely, the mobilecomputing device 2310 may send a communication to the service providerserver system 2352 initiating a telephone call with a telephone numberthat is associated with a device accessible through the PSTN 2362.

The network 2350 may connect the mobile computing device 2310 with aVoice over Internet Protocol (VoIP) service 2364 that routes voicecommunications over an IP network, as opposed to the PSTN. For example,a user of the mobile computing device 2310 may invoke a VoIP applicationand initiate a call using the program. The service provider serversystem 2352 may forward voice data from the call to a VoIP service,which may route the call over the internet to a corresponding computingdevice, potentially using the PSTN for a final leg of the connection.

An application store 2366 may provide a user of the mobile computingdevice 2310 the ability to browse a list of remotely stored applicationprograms that the user may download over the network 2350 and install onthe mobile computing device 2310. The application store 2366 may serveas a repository of applications developed by third-party applicationdevelopers. An application program that is installed on the mobilecomputing device 2310 may be able to communicate over the network 2350with server systems that are designated for the application program. Forexample, a VoIP application program may be downloaded from theApplication Store 2366, enabling the user to communicate with the VoIPservice 2364.

The mobile computing device 2310 may access content on the internet 2368through network 2350. For example, a user of the mobile computing device2310 may invoke a web browser application that requests data from remotecomputing devices that are accessible at designated universal resourcelocations. In various examples, some of the services 2360 are accessibleover the internet.

The mobile computing device may communicate with a personal computer2370. For example, the personal computer 2370 may be the home computerfor a user of the mobile computing device 2310. Thus, the user may beable to stream media from his personal computer 2370. The user may alsoview the file structure of his personal computer 2370, and transmitselected documents between the computerized devices.

A voice recognition service 2372 may receive voice communication datarecorded with the mobile computing device's microphone 2322, andtranslate the voice communication into corresponding textual data. Insome examples, the translated text is provided to a search engine as aweb query, and responsive search engine search results are transmittedto the mobile computing device 2310.

The mobile computing device 2310 may communicate with a social network2374. The social network may include numerous members, some of whichhave agreed to be related as acquaintances. Application programs on themobile computing device 2310 may access the social network 2374 toretrieve information based on the acquaintances of the user of themobile computing device. For example, an “address book” applicationprogram may retrieve telephone numbers for the user's acquaintances. Invarious examples, content may be delivered to the mobile computingdevice 2310 based on social network distances from the user to othermembers. For example, advertisement and news article content may beselected for the user based on a level of interaction with such contentby members that are “close” to the user (e.g., members that are“friends” or “friends of friends”).

The mobile computing device 2310 may access a personal set of contacts2376 through network 2350. Each contact may identify an individual andinclude information about that individual (e.g., a phone number, anemail address, and a birthday). Because the set of contacts is hostedremotely to the mobile computing device 2310, the user may access andmaintain the contacts 2376 across several devices as a common set ofcontacts.

The mobile computing device 2310 may access cloud-based applicationprograms 2378. Cloud-computing provides application programs (e.g., aword processor or an email program) that are hosted remotely from themobile computing device 2310, and may be accessed by the device 2310using a web browser or a dedicated program. Example cloud-basedapplication programs include GOOGLE DOCS word processor and spreadsheetservice, GOOGLE GMAIL webmail service, and PICASA picture manager.

Mapping service 2380 can provide the mobile computing device 2310 withstreet maps, route planning information, and satellite images. Anexample mapping service is GOOGLE MAPS. The mapping service 2380 mayalso receive queries and return location-specific results. For example,the mobile computing device 2310 may send an estimated location of themobile computing device and a user-entered query for “pizza places” tothe mapping service 2380. The mapping service 2380 may return a streetmap with “markers” superimposed on the map that identify geographicallocations of nearby “pizza places.”

Turn-by-turn service 2382 may provide the mobile computing device 2310with turn-by-turn directions to a user-supplied destination. Forexample, the turn-by-turn service 2382 may stream to device 2310 astreet-level view of an estimated location of the device, along withdata for providing audio commands and superimposing arrows that direct auser of the device 2310 to the destination.

Various forms of streaming media 2384 may be requested by the mobilecomputing device 2310. For example, computing device 2310 may request astream for a pre-recorded video file, a live television program, or alive radio program. Example services that provide streaming mediainclude YOUTUBE and PANDORA.

A micro-blogging service 2386 may receive from the mobile computingdevice 2310 a user-input post that does not identify recipients of thepost. The micro-blogging service 2386 may disseminate the post to othermembers of the micro-blogging service 2386 that agreed to subscribe tothe user.

A search engine 2388 may receive user-entered textual or verbal queriesfrom the mobile computing device 2310, determine a set ofinternet-accessible documents that are responsive to the query, andprovide to the device 2310 information to display a list of searchresults for the responsive documents. In examples where a verbal queryis received, the voice recognition service 2372 may translate thereceived audio into a textual query that is sent to the search engine.

These and other services may be implemented in a server system 2390. Aserver system may be a combination of hardware and software thatprovides a service or a set of services. For example, a set ofphysically separate and networked computerized devices may operatetogether as a logical server system unit to handle the operationsnecessary to offer a service to hundreds of individual computingdevices.

In various implementations, operations that are performed “in response”to another operation (e.g., a determination or an identification) arenot performed if the prior operation is unsuccessful (e.g., if thedetermination was not performed). Features in this document that aredescribed with conditional language may describe implementations thatare optional. In some examples, “transmitting” from a first device to asecond device includes the first device placing data into a network forreceipt by the second device, but may not include the second devicereceiving the data. Conversely, “receiving” from a first device mayinclude receiving the data from a network, but may not include the firstdevice transmitting the data.

FIG. 24 is a block diagram of computing devices 2400, 2450 that may beused to implement the systems and methods described in this document, aseither a client or as a server or plurality of servers. Computing device2400 is intended to represent various forms of digital computers, suchas laptops, desktops, workstations, personal digital assistants,servers, blade servers, mainframes, and other appropriate computers.Computing device 2450 is intended to represent various forms of mobiledevices, such as personal digital assistants, cellular telephones,smartphones, and other similar computing devices. Additionally computingdevice 2400 or 2450 can include Universal Serial Bus (USB) flash drives.The USB flash drives may store operating systems and other applications.The USB flash drives can include input/output components, such as awireless transmitter or USB connector that may be inserted into a USBport of another computing device. The components shown here, theirconnections and relationships, and their functions, are meant to beexemplary only, and are not meant to limit implementations describedand/or claimed in this document.

Computing device 2400 includes a processor 2402, memory 2404, a storagedevice 2406, a high-speed interface 2408 connecting to memory 2404 andhigh-speed expansion ports 2410, and a low speed interface 2412connecting to low speed bus 2414 and storage device 2406. Each of thecomponents 2402, 2404, 2406, 2408, 2410, and 2412, are interconnectedusing various busses, and may be mounted on a common motherboard or inother manners as appropriate. The processor 2402 can processinstructions for execution within the computing device 2400, includinginstructions stored in the memory 2404 or on the storage device 2406 todisplay graphical information for a GUI on an external input/outputdevice, such as display 2416 coupled to high speed interface 2408. Inother implementations, multiple processors and/or multiple buses may beused, as appropriate, along with multiple memories and types of memory.Also, multiple computing devices 2400 may be connected, with each deviceproviding portions of the necessary operations (e.g., as a server bank,a group of blade servers, or a multi-processor system).

The memory 2404 stores information within the computing device 2400. Inone implementation, the memory 2404 is a volatile memory unit or units.In another implementation, the memory 2404 is a non-volatile memory unitor units. The memory 2404 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 2406 is capable of providing mass storage for thecomputing device 2400. In one implementation, the storage device 2406may be or contain a computer-readable medium, such as a floppy diskdevice, a hard disk device, an optical disk device, or a tape device, aflash memory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 2404, the storage device2406, or memory on processor 2402.

The high speed controller 2408 manages bandwidth-intensive operationsfor the computing device 2400, while the low speed controller 2412manages lower bandwidth-intensive operations. Such allocation offunctions is exemplary only. In one implementation, the high-speedcontroller 2408 is coupled to memory 2404, display 2416 (e.g., through agraphics processor or accelerator), and to high-speed expansion ports2410, which may accept various expansion cards (not shown). In theimplementation, low-speed controller 2412 is coupled to storage device2406 and low-speed expansion port 2414. The low-speed expansion port,which may include various communication ports (e.g., USB, Bluetooth,Ethernet, wireless Ethernet) may be coupled to one or more input/outputdevices, such as a keyboard, a pointing device, a scanner, or anetworking device such as a switch or router, e.g., through a networkadapter.

The computing device 2400 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 2420, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 2424. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 2422. Alternatively, components from computing device 2400 maybe combined with other components in a mobile device (not shown), suchas device 2450. Each of such devices may contain one or more ofcomputing device 2400, 2450, and an entire system may be made up ofmultiple computing devices 2400, 2450 communicating with each other.

Computing device 2450 includes a processor 2452, memory 2464, aninput/output device such as a display 2454, a communication interface2466, and a transceiver 2468, among other components. The device 2450may also be provided with a storage device, such as a microdrive orother device, to provide additional storage. Each of the components2450, 2452, 2464, 2454, 2466, and 2468, are interconnected using variousbuses, and several of the components may be mounted on a commonmotherboard or in other manners as appropriate.

The processor 2452 can execute instructions within the computing device2450, including instructions stored in the memory 2464. The processormay be implemented as a chipset of chips that include separate andmultiple analog and digital processors. Additionally, the processor maybe implemented using any of a number of architectures. For example, theprocessor 410 may be a CISC (Complex Instruction Set Computers)processor, a RISC (Reduced Instruction Set Computer) processor, or aMISC (Minimal Instruction Set Computer) processor. The processor mayprovide, for example, for coordination of the other components of thedevice 2450, such as control of user interfaces, applications run bydevice 2450, and wireless communication by device 2450.

Processor 2452 may communicate with a user through control interface2458 and display interface 2456 coupled to a display 2454. The display2454 may be, for example, a TFT (Thin-Film-Transistor Liquid CrystalDisplay) display or an OLED (Organic Light Emitting Diode) display, orother appropriate display technology. The display interface 2456 maycomprise appropriate circuitry for driving the display 2454 to presentgraphical and other information to a user. The control interface 2458may receive commands from a user and convert them for submission to theprocessor 2452. In addition, an external interface 2462 may be providein communication with processor 2452, so as to enable near areacommunication of device 2450 with other devices. External interface 2462may provide, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces may also be used.

The memory 2464 stores information within the computing device 2450. Thememory 2464 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 2474 may also be provided andconnected to device 2450 through expansion interface 2472, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 2474 may provide extra storage spacefor device 2450, or may also store applications or other information fordevice 2450. Specifically, expansion memory 2474 may includeinstructions to carry out or supplement the processes described above,and may include secure information also. Thus, for example, expansionmemory 2474 may be provide as a security module for device 2450, and maybe programmed with instructions that permit secure use of device 2450.In addition, secure applications may be provided via the SIMM cards,along with additional information, such as placing identifyinginformation on the SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 2464, expansionmemory 2474, or memory on processor 2452 that may be received, forexample, over transceiver 2468 or external interface 2462.

Device 2450 may communicate wirelessly through communication interface2466, which may include digital signal processing circuitry wherenecessary. Communication interface 2466 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 2468. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 2470 mayprovide additional navigation- and location-related wireless data todevice 2450, which may be used as appropriate by applications running ondevice 2450.

Device 2450 may also communicate audibly using audio codec 2460, whichmay receive spoken information from a user and convert it to usabledigital information. Audio codec 2460 may likewise generate audiblesound for a user, such as through a speaker, e.g., in a handset ofdevice 2450. Such sound may include sound from voice telephone calls,may include recorded sound (e.g., voice messages, music files, etc.) andmay also include sound generated by applications operating on device2450.

The computing device 2450 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 2480. It may also be implemented as part of asmartphone 2482, personal digital assistant, or other similar mobiledevice.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), peer-to-peernetworks (having ad-hoc or static members), grid computinginfrastructures, and the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Although a few implementations have been described in detail above,other modifications are possible. Moreover, other mechanisms forperforming the systems and methods described in this document may beused. In addition, the logic flows depicted in the figures do notrequire the particular order shown, or sequential order, to achievedesirable results. Other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherimplementations are within the scope of the following claims.

1. A computer-implemented method comprising: presenting, by a mobilecomputing device, a desktop display on a display screen of the mobilecomputing device, wherein the desktop display includes (i) a desktopbackground display, and (ii) one or more user-selectable applicationprogram shortcut icons, wherein the one or more user-selectableapplication program shortcut icons at least partially overlap thedesktop background display; determining a first geographic location ofthe mobile computing device; updating, by the mobile computing deviceand in response to determining the first geographic location, thedesktop background display to include a first image of a map thatdepicts the first geographic location; determining a second geographiclocation of the mobile computing device, wherein the second geographiclocation is different than the first geographic location; and updating,by the mobile computing device and in response to determining the secondgeographic location, the desktop background display to include a secondimage of the map, wherein the second image of the map has panned todepict the second geographic location.
 2. The method of claim 1, whereinthe desktop display is a first display that is presented on the displayscreen after the mobile computing device is powered on.
 3. The method ofclaim 1, wherein the desktop display is a first display that ispresented on the display screen after a user has interacted with adevice unlocking user interface in order to unlock the mobile computingdevice.
 4. The method of claim 1, wherein the desktop display is a firstdisplay that is presented on the display screen after activation of themobile computing device from a sleep state.
 5. The method of claim 1,wherein the desktop display is presented in response to user selectionof a hardware button of the mobile computing device.
 6. The method ofclaim 1, wherein the desktop display is presented in response to userselection of a home button of the mobile computing device.
 7. The methodof claim 1, wherein each of the one or more user-selectable applicationprogram shortcut icons, when selected, invokes a respective applicationprogram from a plurality of application programs.
 8. The method of claim1, wherein at least some of the one or more user-selectable applicationprogram shortcut icons are associated with application programs thatwere downloaded to the mobile computing device from an onlineapplication store.
 9. The method of claim 1, wherein the one or moreuser-selectable application program shortcut icons are arranged in agrid of application program shortcut icons that is at least oneuser-selectable application program shortcut icon tall and at least twouser-selectable application program shortcut icons wide; and furthercomprising identifying, by the mobile computing device, that user inputcontacted a first of the one or more user-selectable application programshortcut icons at a first location in the grid and dragged the firstuser-selectable application program shortcut icon to a second locationin the grid.
 10. The method of claim 1, wherein the first image includesa graphical interface element that is displayed over the map and thatrepresents a current location of the mobile computing device on the map.11. The method of claim 1, further comprising continuously updating, bythe mobile computing device, the map as a geographic location of themobile device changes to consistently identify a current geographiclocation of the mobile computing device.
 12. The method of claim 11,wherein the map is continuously updated such that a center of the mapcontinuously corresponds to the current geographic location of themobile computing device on the map.
 13. The method of claim 1, whereinthe map is a geographic street map.
 14. The method of claim 1, whereindetermining the first geographic location and determining the secondgeographic location includes using a satellite-based positioning system,or identifying base stations in a mobile device cellular network withwhich the mobile computing device wirelessly communicates.
 15. Themethod of claim 1, further comprising displaying, by the mobilecomputing device, a widget graphical interface element over a portion ofthe desktop background display, the widget graphical interface elementoccupying less than the full display of the desktop background display,the widget graphical interface element being associated with anapplication program that is executing, the widget graphical interfaceelement displaying content that is controlled by the executingapplication program.
 16. The method of claim 1, further comprisingdetermining, by the mobile computing device, that the mobile computingdevice has physically docked with a docking system and, as a result,changing, by the mobile computing device and without any user inputsubsequent to determining that the mobile computing device hasphysically docked with the docking system, the desktop backgrounddisplay from an image that is not of a map to the first image that is ofthe map.
 17. One or more computer-readable storage devices storinginstructions that, when executed by one or more processing devices,perform operations comprising: presenting, by a mobile computing device,a desktop display on a display screen of the mobile computing device,wherein the desktop display includes (i) a desktop background display,and (ii) one or more user-selectable application program shortcut icons,wherein the one or more user-selectable application program shortcuticons at least partially overlap the desktop background display;determining a first geographic location of the mobile computing device;updating, by the mobile computing device and in response to determiningthe first geographic location, the desktop background display to includea first image of a map that depicts the first geographic location;determining a second geographic location of the mobile computing device,wherein the second geographic location is different than the firstgeographic location; and updating, by the mobile computing device and inresponse to determining the second geographic location, the desktopbackground display to include a second image of the map, wherein thesecond image of the map has panned to depict the second geographiclocation.
 18. A computer-implemented method comprising: presenting, by amobile computing device, a desktop display on a display screen of themobile computing device, wherein the desktop display comprises: (i) adesktop background display that includes at least one image, and (ii)one or more user-selectable application program shortcut icons that,when selected, each invoke a respective application program from aplurality of application programs, the one or more user-selectableapplication program shortcut icons at least partially overlapping thedisplayed desktop background display, wherein the desktop display ispresented in response to user-selection of a hardware home button;determining a first geographic location of the mobile device by use of asatellite-based positioning system or by identifying base stations in amobile device cellular network with which the mobile computing devicewirelessly communicates; updating, by the mobile computing device and inresponse to determining the first geographic location, the desktopbackground display to include an image of a map that depicts the firstgeographic location; determining a second geographic location of themobile device by use of the satellite-based positioning system or byidentifying base stations in the mobile device cellular network withwhich the mobile computing device wirelessly communicates; and updating,by the mobile computing device and in response to determining the secondgeographic location, the desktop background display to include a secondimage of the map, wherein the second image of the map has panned todepict the second geographic location.
 19. The computer-implementedmethod of claim 18, further comprising continuously updating, by themobile computing device, the map as a current geographic location of themobile device changes to consistently pan the map so that a center ofthe map continuously corresponds to the current geographic location ofthe mobile computing device.
 20. The computer-implemented method ofclaim 18, further comprising determining, by the mobile computingdevice, that the mobile computing device has physically docked with adocking system and, as a result, changing, by the mobile computingdevice and without any user input subsequent to determining that themobile computing device has physically docked with the docking system,the desktop background display from an image that is not of a map to theimage of the map.